From 19a8412b0fdd6955b28042c470022cfbb8ff55e0 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 20 Mar 2024 19:12:21 +0000 Subject: Prefer numbering properties to numbering from paragraph style --- tests/docx/body_xml_tests.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'tests/docx') diff --git a/tests/docx/body_xml_tests.py b/tests/docx/body_xml_tests.py index 32f6642..44a3e34 100644 --- a/tests/docx/body_xml_tests.py +++ b/tests/docx/body_xml_tests.py @@ -105,7 +105,20 @@ class ParagraphTests(object): assert_equal("1", paragraph.numbering.level_index) assert_equal(True, paragraph.numbering.is_ordered) - def test_numbering_on_paragraph_style_takes_precedence_over_numpr(self): + def test_paragraph_has_numbering_from_paragraph_style_if_present(self): + properties_xml = xml_element("w:pPr", {}, [ + xml_element("w:pStyle", {"w:val": "List"}), + ]) + paragraph_xml = xml_element("w:p", {}, [properties_xml]) + + numbering = _NumberingMap( + levels_by_paragraph_style_id={"List": documents.numbering_level("1", True)} + ) + paragraph = _read_and_get_document_xml_element(paragraph_xml, numbering=numbering) + + assert_equal(True, paragraph.numbering.is_ordered) + + def test_numbering_properties_in_paragraph_properties_takes_precedence_over_numbering_in_paragraph_style(self): numbering_properties_xml = xml_element("w:numPr", {}, [ xml_element("w:ilvl", {"w:val": "1"}), xml_element("w:numId", {"w:val": "42"}), @@ -117,12 +130,12 @@ class ParagraphTests(object): paragraph_xml = xml_element("w:p", {}, [properties_xml]) numbering = _NumberingMap( - nums={"42": {"1": documents.numbering_level("1", False)}}, - levels_by_paragraph_style_id={"List": documents.numbering_level("1", True)} + nums={"42": {"1": documents.numbering_level("1", True)}}, + levels_by_paragraph_style_id={"List": documents.numbering_level("2", True)} ) paragraph = _read_and_get_document_xml_element(paragraph_xml, numbering=numbering) - assert_equal(True, paragraph.numbering.is_ordered) + assert_equal("1", paragraph.numbering.level_index) def test_numbering_properties_are_ignored_if_lvl_is_missing(self): paragraph_xml = self._paragraph_with_numbering_properties([ -- cgit v1.2.3