|
11 | 11 | from docx.opc.coreprops import CoreProperties |
12 | 12 | from docx.package import Package |
13 | 13 | from docx.parts.document import DocumentPart |
14 | | -from docx.parts.hdrftr import HeaderPart |
| 14 | +from docx.parts.hdrftr import FooterPart, HeaderPart |
15 | 15 | from docx.parts.image import ImagePart |
16 | 16 | from docx.parts.numbering import NumberingPart |
17 | 17 | from docx.parts.settings import SettingsPart |
|
29 | 29 |
|
30 | 30 | class DescribeDocumentPart(object): |
31 | 31 |
|
| 32 | + def it_can_add_a_footer_part(self, package_, FooterPart_, footer_part_, relate_to_): |
| 33 | + FooterPart_.new.return_value = footer_part_ |
| 34 | + relate_to_.return_value = "rId12" |
| 35 | + document_part = DocumentPart(None, None, None, package_) |
| 36 | + |
| 37 | + footer_part, rId = document_part.add_footer_part() |
| 38 | + |
| 39 | + FooterPart_.new.assert_called_once_with(package_) |
| 40 | + relate_to_.assert_called_once_with(document_part, footer_part_, RT.FOOTER) |
| 41 | + assert footer_part is footer_part_ |
| 42 | + assert rId == "rId12" |
| 43 | + |
32 | 44 | def it_can_add_a_header_part(self, package_, HeaderPart_, header_part_, relate_to_): |
33 | 45 | HeaderPart_.new.return_value = header_part_ |
34 | 46 | relate_to_.return_value = "rId7" |
@@ -296,6 +308,14 @@ def core_properties_(self, request): |
296 | 308 | def drop_rel_(self, request): |
297 | 309 | return method_mock(request, DocumentPart, "drop_rel", autospec=True) |
298 | 310 |
|
| 311 | + @pytest.fixture |
| 312 | + def FooterPart_(self, request): |
| 313 | + return class_mock(request, 'docx.parts.document.FooterPart') |
| 314 | + |
| 315 | + @pytest.fixture |
| 316 | + def footer_part_(self, request): |
| 317 | + return instance_mock(request, FooterPart) |
| 318 | + |
299 | 319 | @pytest.fixture |
300 | 320 | def get_or_add_image_(self, request): |
301 | 321 | return method_mock(request, DocumentPart, 'get_or_add_image') |
|
0 commit comments