66
77from __future__ import absolute_import , print_function , unicode_literals
88
9- from docx . parts . image import Image
9+ import pytest
1010
11- from ..unitutil import test_file
11+ from docx .opc .constants import CONTENT_TYPE as CT , RELATIONSHIP_TYPE as RT
12+ from docx .opc .package import PartFactory
13+ from docx .opc .packuri import PackURI
14+ from docx .package import Package
15+ from docx .parts .image import Image , ImagePart
16+
17+ from ..unitutil import instance_mock , method_mock , test_file
1218
1319
1420class DescribeImage (object ):
@@ -27,3 +33,50 @@ def it_can_construct_from_an_image_stream(self):
2733 assert isinstance (image , Image )
2834 assert image .sha1 == '79769f1e202add2e963158b532e36c2c0f76a70c'
2935 assert image .filename is None
36+
37+
38+ class DescribeImagePart (object ):
39+
40+ def it_is_used_by_PartFactory_to_construct_image_part (self , load_fixture ):
41+ # fixture ----------------------
42+ image_part_load_ , partname_ , blob_ , package_ , image_part_ = (
43+ load_fixture
44+ )
45+ content_type = CT .JPEG
46+ reltype = RT .IMAGE
47+ # exercise ---------------------
48+ part = PartFactory (partname_ , content_type , reltype , blob_ , package_ )
49+ # verify -----------------------
50+ image_part_load_ .assert_called_once_with (
51+ partname_ , content_type , blob_ , package_
52+ )
53+ assert part is image_part_
54+
55+ # fixtures -------------------------------------------------------
56+
57+ @pytest .fixture
58+ def blob_ (self , request ):
59+ return instance_mock (request , str )
60+
61+ @pytest .fixture
62+ def image_part_ (self , request ):
63+ return instance_mock (request , ImagePart )
64+
65+ @pytest .fixture
66+ def image_part_load_ (self , request , image_part_ ):
67+ return method_mock (
68+ request , ImagePart , 'load' , return_value = image_part_
69+ )
70+
71+ @pytest .fixture
72+ def load_fixture (
73+ self , image_part_load_ , partname_ , blob_ , package_ , image_part_ ):
74+ return image_part_load_ , partname_ , blob_ , package_ , image_part_
75+
76+ @pytest .fixture
77+ def package_ (self , request ):
78+ return instance_mock (request , Package )
79+
80+ @pytest .fixture
81+ def partname_ (self , request ):
82+ return instance_mock (request , PackURI )
0 commit comments