Skip to content

Commit c55f4ed

Browse files
committed
hdr: add _Header._header_part
1 parent 9e2b32d commit c55f4ed

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

docx/parts/document.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ def get_style_id(self, style_or_name, style_type):
8282
"""
8383
return self.styles.get_style_id(style_or_name, style_type)
8484

85+
def header_part(self, rId):
86+
"""Return |HeaderPart| related by *rId*."""
87+
raise NotImplementedError
88+
8589
@lazyproperty
8690
def inline_shapes(self):
8791
"""

docx/section.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,8 @@ def _has_header_part(self):
295295
@property
296296
def _header_part(self):
297297
"""|HeaderPart| object containing content of this header."""
298-
raise NotImplementedError
298+
headerReference = self._sectPr.get_headerReference(WD_HEADER_FOOTER.PRIMARY)
299+
return self._document_part.header_part(headerReference.rId)
299300

300301
@property
301302
def _prior_header(self):

tests/test_section.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,18 @@ def it_knows_when_it_has_a_header_part_to_help(self, has_header_part_fixture):
471471

472472
assert has_header_part is expected_value
473473

474+
def it_provides_access_to_its_header_part_to_help(
475+
self, document_part_, header_part_
476+
):
477+
sectPr = element("w:sectPr/w:headerReference{w:type=default,r:id=rId8}")
478+
document_part_.header_part.return_value = header_part_
479+
header = _Header(sectPr, document_part_)
480+
481+
header_part = header._header_part
482+
483+
document_part_.header_part.assert_called_once_with("rId8")
484+
assert header_part is header_part_
485+
474486
def it_provides_access_to_the_prior_Header_to_help(
475487
self, request, document_part_, header_
476488
):

0 commit comments

Comments
 (0)