diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-09-02 23:23:08 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-09-02 23:23:08 +0100 |
| commit | 7018a91184e98a47c0a39526c743cd9968450633 (patch) | |
| tree | a388a9128cbd6049f40b14ed92dbd280b4473184 /tests/docx | |
| parent | 1727ae617084af57c3b690da36b990dcce9b72d4 (diff) | |
Use alt text title if description is blank or missing
Diffstat (limited to 'tests/docx')
| -rw-r--r-- | tests/docx/body_xml_tests.py | 66 |
1 files changed, 61 insertions, 5 deletions
diff --git a/tests/docx/body_xml_tests.py b/tests/docx/body_xml_tests.py index 6064ddb..678d17f 100644 --- a/tests/docx/body_xml_tests.py +++ b/tests/docx/body_xml_tests.py @@ -464,6 +464,56 @@ class ReadXmlElementTests(object): with image.open() as image_file: assert_equal(self.IMAGE_BYTES, image_file.read()) + + @istest + def alt_text_title_is_used_if_alt_text_description_is_blank(self): + drawing_element = _create_inline_image( + blip=_embedded_blip(self.IMAGE_RELATIONSHIP_ID), + description=" ", + title="It's a hat", + ) + + image = self._read_embedded_image(drawing_element) + + assert_equal(documents.Image, type(image)) + assert_equal("It's a hat", image.alt_text) + assert_equal("image/png", image.content_type) + with image.open() as image_file: + assert_equal(self.IMAGE_BYTES, image_file.read()) + + + @istest + def alt_text_title_is_used_if_alt_text_description_is_missing(self): + drawing_element = _create_inline_image( + blip=_embedded_blip(self.IMAGE_RELATIONSHIP_ID), + title="It's a hat", + ) + + image = self._read_embedded_image(drawing_element) + + assert_equal(documents.Image, type(image)) + assert_equal("It's a hat", image.alt_text) + assert_equal("image/png", image.content_type) + with image.open() as image_file: + assert_equal(self.IMAGE_BYTES, image_file.read()) + + + @istest + def alt_text_description_is_preferred_to_alt_text_title(self): + drawing_element = _create_inline_image( + blip=_embedded_blip(self.IMAGE_RELATIONSHIP_ID), + description="It's a hat", + title="hat", + ) + + image = self._read_embedded_image(drawing_element) + + assert_equal(documents.Image, type(image)) + assert_equal("It's a hat", image.alt_text) + assert_equal("image/png", image.content_type) + with image.open() as image_file: + assert_equal(self.IMAGE_BYTES, image_file.read()) + @istest def can_read_anchored_pictures(self): drawing_element = _create_anchored_image( @@ -696,21 +746,27 @@ def _text_element(value): return xml_element("w:t", {}, [xml_text(value)]) -def _create_inline_image(description, blip): +def _create_inline_image(blip, description=None, title=None): return xml_element("w:drawing", {}, [ - xml_element("wp:inline", {}, _create_image_elements(description, blip)) + xml_element("wp:inline", {}, _create_image_elements(blip, description=description, title=title)) ]) def _create_anchored_image(description, blip): return xml_element("w:drawing", {}, [ - xml_element("wp:anchor", {}, _create_image_elements(description, blip)) + xml_element("wp:anchor", {}, _create_image_elements(blip, description=description, )) ]) -def _create_image_elements(description, blip): +def _create_image_elements(blip, description=None, title=None): + properties = {} + if description is not None: + properties["descr"] = description + if title is not None: + properties["title"] = title + return [ - xml_element("wp:docPr", {"descr": description}), + xml_element("wp:docPr", properties), xml_element("a:graphic", {}, [ xml_element("a:graphicData", {}, [ xml_element("pic:pic", {}, [ |
