Skip to content

Commit bacf9fd

Browse files
committed
hdr: add _Footer._definition
1 parent c77cae0 commit bacf9fd

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

docx/parts/document.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ def drop_header_part(self, rId):
5656
"""Remove related header part identified by *rId*."""
5757
self.drop_rel(rId)
5858

59+
def footer_part(self, rId):
60+
"""Return |FooterPart| related by *rId*."""
61+
raise NotImplementedError
62+
5963
def get_or_add_image(self, image_descriptor):
6064
"""
6165
Return an (rId, image) 2-tuple for the image identified by

docx/section.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,12 @@ def _add_definition(self):
304304
self._sectPr.add_footerReference(WD_HEADER_FOOTER.PRIMARY, rId)
305305
return footer_part
306306

307+
@property
308+
def _definition(self):
309+
"""|FooterPart| object containing content of this footer."""
310+
footerReference = self._sectPr.get_footerReference(WD_HEADER_FOOTER.PRIMARY)
311+
return self._document_part.footer_part(footerReference.rId)
312+
307313
def _drop_definition(self):
308314
"""Remove footer definition (footer part) associated with this section."""
309315
rId = self._sectPr.remove_footerReference(WD_HEADER_FOOTER.PRIMARY)

tests/test_section.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,18 @@ def it_can_add_a_footer_part_to_help(self, document_part_, footer_part_):
514514
)
515515
assert footer_part is footer_part_
516516

517+
def it_provides_access_to_its_footer_part_to_help(
518+
self, document_part_, footer_part_
519+
):
520+
sectPr = element("w:sectPr/w:footerReference{w:type=default,r:id=rId3}")
521+
document_part_.footer_part.return_value = footer_part_
522+
footer = _Footer(sectPr, document_part_)
523+
524+
footer_part = footer._definition
525+
526+
document_part_.footer_part.assert_called_once_with("rId3")
527+
assert footer_part is footer_part_
528+
517529
def it_can_drop_the_related_footer_part_to_help(self, document_part_):
518530
sectPr = element("w:sectPr{r:a=b}/w:footerReference{w:type=default,r:id=rId42}")
519531
footer = _Footer(sectPr, document_part_)

0 commit comments

Comments
 (0)