10
10
11
11
from pptx .opc .constants import RELATIONSHIP_TYPE as RT
12
12
from pptx .opc .package import Part , _Relationship
13
+ from pptx .opc .packuri import PackURI
13
14
from pptx .package import _ImageParts , Package
14
15
from pptx .parts .coreprops import CoreProperties
15
16
from pptx .parts .image import Image , ImagePart
@@ -71,6 +72,11 @@ def it_can_save_itself_to_a_pptx_file(self, temp_pptx_path):
71
72
assert slide_layouts is not None
72
73
assert len (slide_layouts ) == 11
73
74
75
+ def it_knows_the_next_available_image_partname (self , next_fixture ):
76
+ package , ext , expected_value = next_fixture
77
+ partname = package .next_image_partname (ext )
78
+ assert partname == expected_value
79
+
74
80
# fixtures ---------------------------------------------
75
81
76
82
@pytest .fixture
@@ -80,6 +86,19 @@ def image_part_fixture(self, _image_parts_, image_part_):
80
86
package ._image_parts .get_or_add_image_part .return_value = image_part_
81
87
return package , image_file , image_part_
82
88
89
+ @pytest .fixture (params = [
90
+ ((3 , 4 , 2 ), 1 ),
91
+ ((4 , 2 , 1 ), 3 ),
92
+ ((2 , 3 , 1 ), 4 ),
93
+ ])
94
+ def next_fixture (self , request , iter_parts_ ):
95
+ idxs , idx = request .param
96
+ package = Package ()
97
+ package .iter_parts .return_value = self .i_image_parts (request , idxs )
98
+ ext = 'foo'
99
+ expected_value = '/ppt/media/image%d.%s' % (idx , ext )
100
+ return package , ext , expected_value
101
+
83
102
@pytest .fixture
84
103
def temp_pptx_path (self , tmpdir ):
85
104
return absjoin (str (tmpdir ), 'test-pptx.pptx' )
@@ -94,6 +113,16 @@ def image_part_(self, request):
94
113
def _image_parts_ (self , request ):
95
114
return property_mock (request , Package , '_image_parts' )
96
115
116
+ def i_image_parts (self , request , idxs ):
117
+ def part (idx ):
118
+ partname = PackURI ('/ppt/media/image%d.png' % idx )
119
+ return instance_mock (request , Part , partname = partname )
120
+ return iter ([part (idx ) for idx in idxs ])
121
+
122
+ @pytest .fixture
123
+ def iter_parts_ (self , request ):
124
+ return property_mock (request , Package , 'iter_parts' )
125
+
97
126
98
127
class Describe_ImageParts (object ):
99
128
0 commit comments