@@ -28,44 +28,6 @@ def oxml_fromstring(request):
2828
2929class DescribePackageReader (object ):
3030
31- @pytest .fixture
32- def from_xml (self , request ):
33- return method_mock (request , _ContentTypeMap , 'from_xml' )
34-
35- @pytest .fixture
36- def init (self , request ):
37- return initializer_mock (request , PackageReader )
38-
39- @pytest .fixture
40- def _load_serialized_parts (self , request ):
41- return method_mock (request , PackageReader , '_load_serialized_parts' )
42-
43- @pytest .fixture
44- def PhysPkgReader_ (self , request ):
45- _patch = patch (
46- 'docx.opc.pkgreader.PhysPkgReader' , spec_set = _ZipPkgReader
47- )
48- request .addfinalizer (_patch .stop )
49- return _patch .start ()
50-
51- @pytest .fixture
52- def _SerializedPart_ (self , request ):
53- return class_mock (request , 'docx.opc.pkgreader._SerializedPart' )
54-
55- @pytest .fixture
56- def _SerializedRelationshipCollection_ (self , request ):
57- return class_mock (
58- request , 'docx.opc.pkgreader._SerializedRelationshipCollection'
59- )
60-
61- @pytest .fixture
62- def _srels_for (self , request ):
63- return method_mock (request , PackageReader , '_srels_for' )
64-
65- @pytest .fixture
66- def _walk_phys_parts (self , request ):
67- return method_mock (request , PackageReader , '_walk_phys_parts' )
68-
6931 def it_can_construct_from_pkg_file (self , init , PhysPkgReader_ , from_xml ,
7032 _srels_for , _load_serialized_parts ):
7133 # mockery ----------------------
@@ -125,10 +87,12 @@ def it_can_iterate_over_all_the_srels(self):
12587 def it_can_load_serialized_parts (self , _SerializedPart_ , _walk_phys_parts ):
12688 # test data --------------------
12789 test_data = (
128- ('/part/name1.xml' , 'app/vnd.type_1' , '<Part_1/>' , 'srels_1' ),
129- ('/part/name2.xml' , 'app/vnd.type_2' , '<Part_2/>' , 'srels_2' ),
90+ ('/part/name1.xml' , 'app/vnd.type_1' , 'reltype1' , '<Part_1/>' ,
91+ 'srels_1' ),
92+ ('/part/name2.xml' , 'app/vnd.type_2' , 'reltype2' , '<Part_2/>' ,
93+ 'srels_2' ),
13094 )
131- iter_vals = [(t [0 ], t [2 ], t [3 ]) for t in test_data ]
95+ iter_vals = [(t [0 ], t [2 ], t [3 ], t [ 4 ] ) for t in test_data ]
13296 content_types = dict ((t [0 ], t [1 ]) for t in test_data )
13397 # mockery ----------------------
13498 phys_reader = Mock (name = 'phys_reader' )
@@ -138,12 +102,15 @@ def it_can_load_serialized_parts(self, _SerializedPart_, _walk_phys_parts):
138102 Mock (name = 'spart_1' ), Mock (name = 'spart_2' )
139103 )
140104 # exercise ---------------------
141- retval = PackageReader ._load_serialized_parts (phys_reader , pkg_srels ,
142- content_types )
105+ retval = PackageReader ._load_serialized_parts (
106+ phys_reader , pkg_srels , content_types
107+ )
143108 # verify -----------------------
144109 expected_calls = [
145- call ('/part/name1.xml' , 'app/vnd.type_1' , '<Part_1/>' , 'srels_1' ),
146- call ('/part/name2.xml' , 'app/vnd.type_2' , '<Part_2/>' , 'srels_2' ),
110+ call ('/part/name1.xml' , 'app/vnd.type_1' , '<Part_1/>' ,
111+ 'reltype1' , 'srels_1' ),
112+ call ('/part/name2.xml' , 'app/vnd.type_2' , '<Part_2/>' ,
113+ 'reltype2' , 'srels_2' ),
147114 ]
148115 assert _SerializedPart_ .call_args_list == expected_calls
149116 assert retval == expected_sparts
@@ -164,12 +131,17 @@ def it_can_walk_phys_pkg_parts(self, _srels_for):
164131 part_1_blob , part_2_blob , part_3_blob = (
165132 '<Part_1/>' , '<Part_2/>' , '<Part_3/>'
166133 )
134+ reltype1 , reltype2 , reltype3 = ('reltype1' , 'reltype2' , 'reltype3' )
167135 srels = [
168136 Mock (name = 'rId1' , is_external = True ),
169- Mock (name = 'rId2' , is_external = False , target_partname = partname_1 ),
170- Mock (name = 'rId3' , is_external = False , target_partname = partname_2 ),
171- Mock (name = 'rId4' , is_external = False , target_partname = partname_1 ),
172- Mock (name = 'rId5' , is_external = False , target_partname = partname_3 ),
137+ Mock (name = 'rId2' , is_external = False , reltype = reltype1 ,
138+ target_partname = partname_1 ),
139+ Mock (name = 'rId3' , is_external = False , reltype = reltype2 ,
140+ target_partname = partname_2 ),
141+ Mock (name = 'rId4' , is_external = False , reltype = reltype1 ,
142+ target_partname = partname_1 ),
143+ Mock (name = 'rId5' , is_external = False , reltype = reltype3 ,
144+ target_partname = partname_3 ),
173145 ]
174146 pkg_srels = srels [:2 ]
175147 part_1_srels = srels [2 :3 ]
@@ -182,13 +154,14 @@ def it_can_walk_phys_pkg_parts(self, _srels_for):
182154 part_1_blob , part_2_blob , part_3_blob
183155 ]
184156 # exercise ---------------------
185- generated_tuples = [t for t in PackageReader ._walk_phys_parts (
186- phys_reader , pkg_srels )]
157+ generated_tuples = list (
158+ PackageReader ._walk_phys_parts (phys_reader , pkg_srels )
159+ )
187160 # verify -----------------------
188161 expected_tuples = [
189- (partname_1 , part_1_blob , part_1_srels ),
190- (partname_2 , part_2_blob , part_2_srels ),
191- (partname_3 , part_3_blob , part_3_srels ),
162+ (partname_1 , part_1_blob , reltype1 , part_1_srels ),
163+ (partname_2 , part_2_blob , reltype2 , part_2_srels ),
164+ (partname_3 , part_3_blob , reltype3 , part_3_srels ),
192165 ]
193166 assert generated_tuples == expected_tuples
194167
@@ -207,6 +180,46 @@ def it_can_retrieve_srels_for_a_source_uri(
207180 load_from_xml .assert_called_once_with (source_uri .baseURI , rels_xml )
208181 assert retval == srels
209182
183+ # fixtures -------------------------------------------------------
184+
185+ @pytest .fixture
186+ def from_xml (self , request ):
187+ return method_mock (request , _ContentTypeMap , 'from_xml' )
188+
189+ @pytest .fixture
190+ def init (self , request ):
191+ return initializer_mock (request , PackageReader )
192+
193+ @pytest .fixture
194+ def _load_serialized_parts (self , request ):
195+ return method_mock (request , PackageReader , '_load_serialized_parts' )
196+
197+ @pytest .fixture
198+ def PhysPkgReader_ (self , request ):
199+ _patch = patch (
200+ 'docx.opc.pkgreader.PhysPkgReader' , spec_set = _ZipPkgReader
201+ )
202+ request .addfinalizer (_patch .stop )
203+ return _patch .start ()
204+
205+ @pytest .fixture
206+ def _SerializedPart_ (self , request ):
207+ return class_mock (request , 'docx.opc.pkgreader._SerializedPart' )
208+
209+ @pytest .fixture
210+ def _SerializedRelationshipCollection_ (self , request ):
211+ return class_mock (
212+ request , 'docx.opc.pkgreader._SerializedRelationshipCollection'
213+ )
214+
215+ @pytest .fixture
216+ def _srels_for (self , request ):
217+ return method_mock (request , PackageReader , '_srels_for' )
218+
219+ @pytest .fixture
220+ def _walk_phys_parts (self , request ):
221+ return method_mock (request , PackageReader , '_walk_phys_parts' )
222+
210223
211224class Describe_ContentTypeMap (object ):
212225
@@ -284,13 +297,15 @@ def it_remembers_construction_values(self):
284297 # test data --------------------
285298 partname = '/part/name.xml'
286299 content_type = 'app/vnd.type'
300+ reltype = 'http://rel/type'
287301 blob = '<Part/>'
288302 srels = 'srels proxy'
289303 # exercise ---------------------
290- spart = _SerializedPart (partname , content_type , blob , srels )
304+ spart = _SerializedPart (partname , content_type , reltype , blob , srels )
291305 # verify -----------------------
292306 assert spart .partname == partname
293307 assert spart .content_type == content_type
308+ assert spart .reltype == reltype
294309 assert spart .blob == blob
295310 assert spart .srels == srels
296311
0 commit comments