1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
from mammoth.docx.xmlparser import element as xml_element
from mammoth.docx.content_types_xml import read_content_types_xml_element
from ..testing import assert_equal
def test_content_type_is_based_on_default_for_extension_if_there_is_no_override():
element = xml_element("content-types:Types", {}, [
xml_element("content-types:Default", {
"Extension": "png",
"ContentType": "image/png",
})
])
content_types = read_content_types_xml_element(element)
assert_equal(
"image/png",
content_types.find_content_type("word/media/hat.png"),
)
def test_content_type_is_based_on_override_if_present():
element = xml_element("content-types:Types", {}, [
xml_element("content-types:Default", {
"Extension": "png",
"ContentType": "image/png",
}),
xml_element("content-types:Override", {
"PartName": "/word/media/hat.png",
"ContentType": "image/hat"
}),
])
content_types = read_content_types_xml_element(element)
assert_equal(
"image/hat",
content_types.find_content_type("word/media/hat.png"),
)
def test_fallback_content_types_have_common_image_types():
element = xml_element("content-types:Types", {}, [])
content_types = read_content_types_xml_element(element)
assert_equal(
"image/png",
content_types.find_content_type("word/media/hat.png"),
)
assert_equal(
"image/gif",
content_types.find_content_type("word/media/hat.gif"),
)
assert_equal(
"image/jpeg",
content_types.find_content_type("word/media/hat.jpg"),
)
assert_equal(
"image/jpeg",
content_types.find_content_type("word/media/hat.jpeg"),
)
assert_equal(
"image/bmp",
content_types.find_content_type("word/media/hat.bmp"),
)
assert_equal(
"image/tiff",
content_types.find_content_type("word/media/hat.tif"),
)
assert_equal(
"image/tiff",
content_types.find_content_type("word/media/hat.tiff"),
)
def test_fallback_content_types_are_case_insensitive():
element = xml_element("content-types:Types", {}, [])
content_types = read_content_types_xml_element(element)
assert_equal(
"image/png",
content_types.find_content_type("word/media/hat.PnG"),
)
|