From cd95535a1bb0f486d4a102cfc622ae5228c3071d Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 3 Nov 2017 16:00:19 +0000 Subject: Read table styles --- tests/docx/body_xml_tests.py | 20 ++++++++++++-------- tests/docx/styles_xml_tests.py | 15 +++++++++++++++ 2 files changed, 27 insertions(+), 8 deletions(-) (limited to 'tests/docx') diff --git a/tests/docx/body_xml_tests.py b/tests/docx/body_xml_tests.py index c81fade..ad509c4 100644 --- a/tests/docx/body_xml_tests.py +++ b/tests/docx/body_xml_tests.py @@ -62,7 +62,11 @@ class ParagraphTests(object): properties_xml = xml_element("w:pPr", {}, [style_xml]) paragraph_xml = xml_element("w:p", {}, [properties_xml]) - styles = Styles({"Heading1": Style(style_id="Heading1", name="Heading 1")}, {}) + styles = Styles( + paragraph_styles={"Heading1": Style(style_id="Heading1", name="Heading 1")}, + character_styles={}, + table_styles={}, + ) paragraph = _read_and_get_document_xml_element(paragraph_xml, styles=styles) assert_equal("Heading1", paragraph.style_id) @@ -74,9 +78,7 @@ class ParagraphTests(object): properties_xml = xml_element("w:pPr", {}, [style_xml]) paragraph_xml = xml_element("w:p", {}, [properties_xml]) - styles = Styles({}, {}) - - result = _read_document_xml_element(paragraph_xml, styles=styles) + result = _read_document_xml_element(paragraph_xml, styles=Styles.EMPTY) paragraph = result.value assert_equal("Heading1", paragraph.style_id) assert_equal(None, paragraph.style_name) @@ -153,7 +155,11 @@ class RunTests(object): def run_has_style_id_and_name_read_from_run_properties_if_present(self): style_xml = xml_element("w:rStyle", {"w:val": "Heading1Char"}) - styles = Styles({}, {"Heading1Char": Style(style_id="Heading1Char", name="Heading 1 Char")}) + styles = Styles( + paragraph_styles={}, + character_styles={"Heading1Char": Style(style_id="Heading1Char", name="Heading 1 Char")}, + table_styles={}, + ) run = self._read_run_with_properties([style_xml], styles=styles) assert_equal("Heading1Char", run.style_id) @@ -165,9 +171,7 @@ class RunTests(object): properties_xml = xml_element("w:rPr", {}, [style_xml]) run_xml = xml_element("w:r", {}, [properties_xml]) - styles = Styles({}, {}) - - result = _read_document_xml_element(run_xml, styles=styles) + result = _read_document_xml_element(run_xml, styles=Styles.EMPTY) run = result.value assert_equal("Heading1Char", run.style_id) assert_equal(None, run.style_name) diff --git a/tests/docx/styles_xml_tests.py b/tests/docx/styles_xml_tests.py index 94d91ce..d70e068 100644 --- a/tests/docx/styles_xml_tests.py +++ b/tests/docx/styles_xml_tests.py @@ -35,6 +35,18 @@ def character_style_can_be_found_by_id(): ) +@istest +def table_style_can_be_found_by_id(): + element = xml_element("w:styles", {}, [ + _table_style_element("TableNormal", "Normal Table"), + ]) + styles = read_styles_xml_element(element) + assert_equal( + "TableNormal", + styles.find_table_style_by_id("TableNormal").style_id + ) + + @istest def paragraph_and_character_styles_are_distinct(): element = xml_element("w:styles", {}, [ @@ -75,6 +87,9 @@ def _paragraph_style_element(style_id, name): def _character_style_element(style_id, name): return _style_element("character", style_id, name) +def _table_style_element(style_id, name): + return _style_element("table", style_id, name) + def _style_element(element_type, style_id, name): children = [xml_element("w:name", {"w:val": name}, [])] return _style_element_with_children(element_type, style_id, children) -- cgit v1.2.3