@@ -50,14 +50,16 @@ def it_can_construct_from_an_image_file_like(self, from_filelike_fixture):
5050
5151 def it_can_construct_from_an_image_stream (self , from_stream_fixture ):
5252 # fixture ----------------------
53- stream_ , blob_ , filename_ = from_stream_fixture [:3 ]
53+ stream_ , blob_ , filename_in = from_stream_fixture [:3 ]
5454 _ImageHeaderFactory_ , image_header_ = from_stream_fixture [3 :5 ]
55- Image__init_ = from_stream_fixture [5 ]
55+ Image__init_ , filename_out = from_stream_fixture [5 : ]
5656 # exercise ---------------------
57- image = Image ._from_stream (stream_ , blob_ , filename_ )
57+ image = Image ._from_stream (stream_ , blob_ , filename_in )
5858 # verify -----------------------
5959 _ImageHeaderFactory_ .assert_called_once_with (stream_ )
60- Image__init_ .assert_called_once_with (blob_ , filename_ , image_header_ )
60+ Image__init_ .assert_called_once_with (
61+ blob_ , filename_out , image_header_
62+ )
6163 assert isinstance (image , Image )
6264
6365 def it_provides_access_to_the_image_blob (self ):
@@ -153,13 +155,15 @@ def from_path_fixture(self, _from_stream_, BytesIO_, stream_, image_):
153155 blob = f .read ()
154156 return image_path , _from_stream_ , stream_ , blob , filename , image_
155157
156- @pytest .fixture
158+ @pytest .fixture ( params = [ 'foobar.png' , None ])
157159 def from_stream_fixture (
158- self , stream_ , blob_ , filename_ , _ImageHeaderFactory_ ,
160+ self , request , stream_ , blob_ , _ImageHeaderFactory_ ,
159161 image_header_ , Image__init_ ):
162+ filename_in = request .param
163+ filename_out = 'image.png' if filename_in is None else filename_in
160164 return (
161- stream_ , blob_ , filename_ , _ImageHeaderFactory_ , image_header_ ,
162- Image__init_
165+ stream_ , blob_ , filename_in , _ImageHeaderFactory_ , image_header_ ,
166+ Image__init_ , filename_out
163167 )
164168
165169 @pytest .fixture
@@ -181,7 +185,7 @@ def _ImageHeaderFactory_(self, request, image_header_):
181185
182186 @pytest .fixture
183187 def image_header_ (self , request ):
184- return instance_mock (request , BaseImageHeader )
188+ return instance_mock (request , BaseImageHeader , default_ext = 'png' )
185189
186190 @pytest .fixture
187191 def Image__init_ (self , request ):
@@ -233,6 +237,11 @@ def it_defines_content_type_as_an_abstract_property(self):
233237 with pytest .raises (NotImplementedError ):
234238 base_image_header .content_type
235239
240+ def it_defines_default_ext_as_an_abstract_property (self ):
241+ base_image_header = BaseImageHeader (None , None , None , None )
242+ with pytest .raises (NotImplementedError ):
243+ base_image_header .default_ext
244+
236245 def it_knows_the_image_dimensions (self ):
237246 px_width , px_height = 42 , 24
238247 image_header = BaseImageHeader (px_width , px_height , None , None )
0 commit comments