aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/docx/body_xml_tests.py6
-rw-r--r--tests/docx/numbering_xml_tests.py57
2 files changed, 60 insertions, 3 deletions
diff --git a/tests/docx/body_xml_tests.py b/tests/docx/body_xml_tests.py
index e9decc4..5d9766b 100644
--- a/tests/docx/body_xml_tests.py
+++ b/tests/docx/body_xml_tests.py
@@ -138,15 +138,15 @@ class ParagraphTests(object):
assert_equal("1", paragraph.numbering.level_index)
- def test_numbering_properties_are_ignored_if_lvl_is_missing(self):
+ def test_when_numbering_properties_are_missing_level_then_level_of_0_is_assumed(self):
paragraph_xml = self._paragraph_with_numbering_properties([
xml_element("w:numId", {"w:val": "42"}),
])
- numbering = _NumberingMap({"42": {"1": documents.numbering_level("1", True)}})
+ numbering = _NumberingMap({"42": {"0": documents.numbering_level("0", True)}})
paragraph = _read_and_get_document_xml_element(paragraph_xml, numbering=numbering)
- assert_equal(None, paragraph.numbering)
+ assert_equal(documents.numbering_level("0", True), paragraph.numbering)
def test_numbering_properties_are_ignored_if_num_id_is_missing(self):
paragraph_xml = self._paragraph_with_numbering_properties([
diff --git a/tests/docx/numbering_xml_tests.py b/tests/docx/numbering_xml_tests.py
index 6f1e447..6cc779f 100644
--- a/tests/docx/numbering_xml_tests.py
+++ b/tests/docx/numbering_xml_tests.py
@@ -72,6 +72,63 @@ def test_num_referencing_non_existent_abstract_num_is_ignored():
assert_equal(None, numbering.find_level("47", "0"))
+def test_given_no_other_levels_with_index_of_0_when_level_is_missing_ilvl_then_level_index_is_0():
+ element = xml_element("w:numbering", {}, [
+ xml_element("w:abstractNum", {"w:abstractNumId": "42"}, [
+ xml_element("w:lvl", {}, [
+ xml_element("w:numFmt", {"w:val": "decimal"}),
+ ]),
+ ]),
+ xml_element("w:num", {"w:numId": "47"}, [
+ xml_element("w:abstractNumId", {"w:val": "42"})
+ ])
+ ])
+
+ numbering = _read_numbering_xml_element(element)
+
+ assert_equal(True, numbering.find_level("47", "0").is_ordered)
+
+
+def test_given_previous_other_level_with_index_of_0_when_level_is_missing_ilvl_then_level_is_ignored():
+ element = xml_element("w:numbering", {}, [
+ xml_element("w:abstractNum", {"w:abstractNumId": "42"}, [
+ xml_element("w:lvl", {"w:ilvl": "0"}, [
+ xml_element("w:numFmt", {"w:val": "bullet"}),
+ ]),
+ xml_element("w:lvl", {}, [
+ xml_element("w:numFmt", {"w:val": "decimal"}),
+ ]),
+ ]),
+ xml_element("w:num", {"w:numId": "47"}, [
+ xml_element("w:abstractNumId", {"w:val": "42"})
+ ])
+ ])
+
+ numbering = _read_numbering_xml_element(element)
+
+ assert_equal(False, numbering.find_level("47", "0").is_ordered)
+
+
+def test_given_subsequent_other_level_with_index_of_0_when_level_is_missing_ilvl_then_level_is_ignored():
+ element = xml_element("w:numbering", {}, [
+ xml_element("w:abstractNum", {"w:abstractNumId": "42"}, [
+ xml_element("w:lvl", {}, [
+ xml_element("w:numFmt", {"w:val": "decimal"}),
+ ]),
+ xml_element("w:lvl", {"w:ilvl": "0"}, [
+ xml_element("w:numFmt", {"w:val": "bullet"}),
+ ]),
+ ]),
+ xml_element("w:num", {"w:numId": "47"}, [
+ xml_element("w:abstractNumId", {"w:val": "42"})
+ ])
+ ])
+
+ numbering = _read_numbering_xml_element(element)
+
+ assert_equal(False, numbering.find_level("47", "0").is_ordered)
+
+
def test_when_abstract_num_has_num_style_link_then_style_is_used_to_find_num():
numbering = _read_numbering_xml_element(
xml_element("w:numbering", {}, [