From de55a714711a27207367bc8c5c8370549a9bd219 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 23 Jan 2017 20:17:18 +0000 Subject: Handle target URIs relative to the base --- tests/mammoth_tests.py | 10 +++++++++- .../test-data/tiny-picture-target-base-relative.docx | Bin 0 -> 10881 bytes tests/zips_tests.py | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 tests/test-data/tiny-picture-target-base-relative.docx create mode 100644 tests/zips_tests.py (limited to 'tests') diff --git a/tests/mammoth_tests.py b/tests/mammoth_tests.py index 322ebf7..8789855 100644 --- a/tests/mammoth_tests.py +++ b/tests/mammoth_tests.py @@ -108,13 +108,21 @@ p => h1""" @istest -def inline_images_are_included_in_output(): +def inline_images_referenced_by_path_relative_to_part_are_included_in_output(): with open(test_path("tiny-picture.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj) assert_equal("""

""", result.value) assert_equal([], result.messages) +@istest +def inline_images_referenced_by_path_relative_to_base_are_included_in_output(): + with open(test_path("tiny-picture-target-base-relative.docx"), "rb") as fileobj: + result = mammoth.convert_to_html(fileobj=fileobj) + assert_equal("""

""", result.value) + assert_equal([], result.messages) + + @istest def images_stored_outside_of_document_are_included_in_output(): with open(test_path("external-picture.docx"), "rb") as fileobj: diff --git a/tests/test-data/tiny-picture-target-base-relative.docx b/tests/test-data/tiny-picture-target-base-relative.docx new file mode 100644 index 0000000..1d61988 Binary files /dev/null and b/tests/test-data/tiny-picture-target-base-relative.docx differ diff --git a/tests/zips_tests.py b/tests/zips_tests.py new file mode 100644 index 0000000..bef9895 --- /dev/null +++ b/tests/zips_tests.py @@ -0,0 +1,19 @@ +from nose.tools import istest, assert_equal + +from mammoth.zips import uri_to_zip_entry_name + + +@istest +def when_path_does_not_have_leading_slash_then_path_is_resolved_relative_to_base(): + assert_equal( + "one/two/three/four", + uri_to_zip_entry_name("one/two", "three/four"), + ) + + +@istest +def when_path_has_leading_slash_then_base_is_ignored(): + assert_equal( + "three/four", + uri_to_zip_entry_name("one/two", "/three/four"), + ) -- cgit v1.2.3