4040 call ,
4141 class_mock ,
4242 function_mock ,
43- initializer_mock ,
4443 instance_mock ,
4544 loose_mock ,
4645 method_mock ,
5655class DescribePackageReader (object ):
5756 """Unit-test suite for `pptx.opc.serialized.PackageReader` objects."""
5857
59- def it_can_construct_from_pkg_file (
60- self , init , _PhysPkgReader_ , from_xml , _srels_for , _load_serialized_parts
61- ):
62-
63- phys_reader = _PhysPkgReader_ .return_value
64- content_types = from_xml .return_value
65- pkg_srels = _srels_for .return_value
66- sparts = _load_serialized_parts .return_value
67- pkg_file = Mock (name = "pkg_file" )
68-
69- pkg_reader = PackageReader .from_file (pkg_file )
70-
71- _PhysPkgReader_ .assert_called_once_with (pkg_file )
72- from_xml .assert_called_once_with (phys_reader .content_types_xml )
73- _srels_for .assert_called_once_with (phys_reader , "/" )
74- _load_serialized_parts .assert_called_once_with (
75- phys_reader , pkg_srels , content_types
76- )
77- phys_reader .close .assert_called_once_with ()
78- init .assert_called_once_with (pkg_reader , content_types , pkg_srels , sparts )
79- assert isinstance (pkg_reader , PackageReader )
80-
81- def it_can_iterate_over_the_serialized_parts (self ):
82- # mockery ----------------------
83- partname , content_type , blob = ("part/name.xml" , "app/vnd.type" , "<Part_1/>" )
84- spart = Mock (
85- name = "spart" , partname = partname , content_type = content_type , blob = blob
86- )
87- pkg_reader = PackageReader (None , None , [spart ])
88- iter_count = 0
89- # exercise ---------------------
90- for retval in pkg_reader .iter_sparts ():
91- iter_count += 1
92- # verify -----------------------
93- assert retval == (partname , content_type , blob )
94- assert iter_count == 1
95-
96- def it_can_iterate_over_all_the_srels (self ):
97- # mockery ----------------------
98- pkg_srels = ["srel1" , "srel2" ]
99- sparts = [
100- Mock (name = "spart1" , partname = "pn1" , srels = ["srel3" , "srel4" ]),
101- Mock (name = "spart2" , partname = "pn2" , srels = ["srel5" , "srel6" ]),
102- ]
103- pkg_reader = PackageReader (None , pkg_srels , sparts )
104- # exercise ---------------------
105- generated_tuples = [t for t in pkg_reader .iter_srels ()]
106- # verify -----------------------
107- expected_tuples = [
108- ("/" , "srel1" ),
109- ("/" , "srel2" ),
110- ("pn1" , "srel3" ),
111- ("pn1" , "srel4" ),
112- ("pn2" , "srel5" ),
113- ("pn2" , "srel6" ),
114- ]
115- assert generated_tuples == expected_tuples
116-
117- def it_can_load_serialized_parts (self , _SerializedPart_ , _walk_phys_parts ):
118- # test data --------------------
119- test_data = (
120- ("/part/name1.xml" , "app/vnd.type_1" , "<Part_1/>" , "srels_1" ),
121- ("/part/name2.xml" , "app/vnd.type_2" , "<Part_2/>" , "srels_2" ),
122- )
123- iter_vals = [(t [0 ], t [2 ], t [3 ]) for t in test_data ]
124- content_types = dict ((t [0 ], t [1 ]) for t in test_data )
125- # mockery ----------------------
126- phys_reader = Mock (name = "phys_reader" )
127- pkg_srels = Mock (name = "pkg_srels" )
128- _walk_phys_parts .return_value = iter_vals
129- _SerializedPart_ .side_effect = expected_sparts = (
130- Mock (name = "spart_1" ),
131- Mock (name = "spart_2" ),
132- )
133- # exercise ---------------------
134- retval = PackageReader ._load_serialized_parts (
135- phys_reader , pkg_srels , content_types
136- )
137- # verify -----------------------
138- expected_calls = [
139- call ("/part/name1.xml" , "app/vnd.type_1" , "<Part_1/>" , "srels_1" ),
140- call ("/part/name2.xml" , "app/vnd.type_2" , "<Part_2/>" , "srels_2" ),
141- ]
142- assert _SerializedPart_ .call_args_list == expected_calls
143- assert retval == expected_sparts
144-
14558 def it_can_walk_phys_pkg_parts (self , _srels_for ):
14659 # test data --------------------
14760 # +----------+ +--------+
@@ -175,7 +88,7 @@ def it_can_walk_phys_pkg_parts(self, _srels_for):
17588 phys_reader .blob_for .side_effect = [part_1_blob , part_2_blob , part_3_blob ]
17689 # exercise ---------------------
17790 generated_tuples = [
178- t for t in PackageReader ._walk_phys_parts (phys_reader , pkg_srels )
91+ t for t in PackageReader ( None ) ._walk_phys_parts (phys_reader , pkg_srels )
17992 ]
18093 # verify -----------------------
18194 expected_tuples = [
@@ -195,36 +108,14 @@ def it_can_retrieve_srels_for_a_source_uri(
195108 load_from_xml = _SerializedRelationshipCollection_ .load_from_xml
196109 srels = load_from_xml .return_value
197110 # exercise ---------------------
198- retval = PackageReader ._srels_for (phys_reader , source_uri )
111+ retval = PackageReader ( None ) ._srels_for (phys_reader , source_uri )
199112 # verify -----------------------
200113 phys_reader .rels_xml_for .assert_called_once_with (source_uri )
201114 load_from_xml .assert_called_once_with (source_uri .baseURI , rels_xml )
202115 assert retval == srels
203116
204117 # fixture components -----------------------------------
205118
206- @pytest .fixture
207- def from_xml (self , request ):
208- return method_mock (request , _ContentTypeMap , "from_xml" )
209-
210- @pytest .fixture
211- def init (self , request ):
212- return initializer_mock (request , PackageReader )
213-
214- @pytest .fixture
215- def _load_serialized_parts (self , request ):
216- return method_mock (request , PackageReader , "_load_serialized_parts" )
217-
218- @pytest .fixture
219- def _PhysPkgReader_ (self , request ):
220- _patch = patch ("pptx.opc.serialized._PhysPkgReader" , spec_set = _ZipPkgReader )
221- request .addfinalizer (_patch .stop )
222- return _patch .start ()
223-
224- @pytest .fixture
225- def _SerializedPart_ (self , request ):
226- return class_mock (request , "pptx.opc.serialized._SerializedPart" )
227-
228119 @pytest .fixture
229120 def _SerializedRelationshipCollection_ (self , request ):
230121 return class_mock (
@@ -235,10 +126,6 @@ def _SerializedRelationshipCollection_(self, request):
235126 def _srels_for (self , request ):
236127 return method_mock (request , PackageReader , "_srels_for" )
237128
238- @pytest .fixture
239- def _walk_phys_parts (self , request ):
240- return method_mock (request , PackageReader , "_walk_phys_parts" )
241-
242129
243130class Describe_ContentTypeMap (object ):
244131 def it_can_construct_from_ct_item_xml (self , from_xml_fixture ):
0 commit comments