def test_auto_orient_rotates_asset_correctly(self, processor, exif_orientation, image_transpositions): reference_asset = jpeg_image_asset() misoriented_asset = jpeg_image_asset(transpositions=image_transpositions, exif={'orientation': exif_orientation}) auto_orient_operator = processor.auto_orient() oriented_asset = auto_orient_operator(misoriented_asset) assert is_equal_in_black_white_space(PIL.Image.open(reference_asset.essence), PIL.Image.open(oriented_asset.essence))
def test_auto_orient_rotates_asset_correctly(self, pillow_processor, exif_orientation, image_transpositions): reference_asset = jpeg_image_asset() misoriented_asset = jpeg_image_asset( transpositions=image_transpositions, exif={'orientation': exif_orientation}) auto_orient_operator = pillow_processor.auto_orient() oriented_asset = auto_orient_operator(misoriented_asset) assert is_equal_in_black_white_space( PIL.Image.open(reference_asset.essence), PIL.Image.open(oriented_asset.essence))
def test_transpose_keeps_original_mime_type(self, processor): asset = jpeg_image_asset() transpose_operator = processor.transpose() transposed_asset = transpose_operator(asset) assert transposed_asset.mime_type == asset.mime_type
def test_transpose_flips_dimensions(self, pillow_processor): asset = jpeg_image_asset() transpose_operator = pillow_processor.transpose() transposed_asset = transpose_operator(asset) assert asset.width == transposed_asset.height and asset.height == transposed_asset.width
def test_transpose_flips_dimensions(self, processor): asset = jpeg_image_asset() transpose_operator = processor.transpose() transposed_asset = transpose_operator(asset) assert asset.width == transposed_asset.height and asset.height == transposed_asset.width
def test_transpose_is_reversible(self, processor): asset = jpeg_image_asset() transpose_operator = processor.transpose() transposed_asset = transpose_operator(transpose_operator(asset)) assert is_equal_in_black_white_space(PIL.Image.open(transposed_asset.essence), PIL.Image.open(asset.essence))
def test_transpose_keeps_original_mime_type(self, pillow_processor): asset = jpeg_image_asset() transpose_operator = pillow_processor.transpose() transposed_asset = transpose_operator(asset) assert transposed_asset.mime_type == asset.mime_type
def test_flip_is_reversible(self, processor, orientation): asset = jpeg_image_asset() flip_operator = processor.flip(orientation=orientation) flipped_asset = flip_operator(flip_operator(asset)) assert is_equal_in_black_white_space(PIL.Image.open(flipped_asset.essence), PIL.Image.open(asset.essence))
def test_converted_essence_is_of_specified_type(self, pillow_processor): asset = jpeg_image_asset() conversion_operator = pillow_processor.convert(mime_type='image/png') converted_asset = conversion_operator(asset) image = PIL.Image.open(converted_asset.essence) assert image.format == 'PNG'
def test_converted_asset_receives_correct_mime_type( self, pillow_processor): asset = jpeg_image_asset() conversion_operator = pillow_processor.convert(mime_type='image/png') converted_asset = conversion_operator(asset) assert converted_asset.mime_type == 'image/png'
def test_resize_in_fill_mode_preserves_aspect_ratio_for_portrait_image(self, processor, width, height): jpeg_image_asset_portrait = jpeg_image_asset(width=width, height=height) resize_operator = processor.resize(width=9, height=10, mode=madam.image.ResizeMode.FILL) resized_asset = resize_operator(jpeg_image_asset_portrait) assert resized_asset.width == 9 assert resized_asset.height == 15
def test_resize_in_fit_mode_preserves_aspect_ratio_for_landscape_image(self, processor, width, height): jpeg_image_asset_landscape = jpeg_image_asset(width=width, height=height) resize_operator = processor.resize(width=9, height=10, mode=madam.image.ResizeMode.FIT) resized_asset = resize_operator(jpeg_image_asset_landscape) assert resized_asset.width == 9 assert resized_asset.height == 7
def test_convert_creates_new_asset(self, processor): asset = jpeg_image_asset() conversion_operator = processor.convert(mime_type='image/png') converted_asset = conversion_operator(asset) assert isinstance(converted_asset, madam.core.Asset) assert converted_asset != asset
def test_convert_maintains_dimensions(self, pillow_processor): asset = jpeg_image_asset() conversion_operator = pillow_processor.convert(mime_type='image/png') converted_asset = conversion_operator(asset) assert converted_asset.width == asset.width assert converted_asset.height == asset.height
def test_convert_creates_new_asset(self, pillow_processor): asset = jpeg_image_asset() conversion_operator = pillow_processor.convert(mime_type='image/png') converted_asset = conversion_operator(asset) assert isinstance(converted_asset, madam.core.Asset) assert converted_asset != asset
def test_flip_is_reversible(self, pillow_processor, orientation): asset = jpeg_image_asset() flip_operator = pillow_processor.flip(orientation=orientation) flipped_asset = flip_operator(flip_operator(asset)) assert is_equal_in_black_white_space( PIL.Image.open(flipped_asset.essence), PIL.Image.open(asset.essence))
def test_resize_scales_image_to_exact_dimensions_by_default( self, pillow_processor): jpeg = jpeg_image_asset() resize_operator = pillow_processor.resize(width=9, height=10) filling_asset = resize_operator(jpeg) assert filling_asset.width == 9 assert filling_asset.height == 10
def test_transpose_is_reversible(self, pillow_processor): asset = jpeg_image_asset() transpose_operator = pillow_processor.transpose() transposed_asset = transpose_operator(transpose_operator(asset)) assert is_equal_in_black_white_space( PIL.Image.open(transposed_asset.essence), PIL.Image.open(asset.essence))
def test_read_jpeg_does_not_alter_the_original_file(madam): jpeg_data = jpeg_image_asset().essence original_image_data = jpeg_data.read() jpeg_data.seek(0) madam.read(jpeg_data) jpeg_data.seek(0) image_data_after_reading = jpeg_data.read() assert original_image_data == image_data_after_reading
def test_read_jpeg_does_not_alter_the_original_file(self, manager): jpeg_data = jpeg_image_asset().essence original_image_data = jpeg_data.read() jpeg_data.seek(0) manager.read(jpeg_data) jpeg_data.seek(0) image_data_after_reading = jpeg_data.read() assert original_image_data == image_data_after_reading
def test_resize_in_fill_mode_preserves_aspect_ratio_for_portrait_image( self, pillow_processor, width, height): jpeg_image_asset_portrait = jpeg_image_asset(width=width, height=height) resize_operator = pillow_processor.resize( width=9, height=10, mode=madam.image.ResizeMode.FILL) resized_asset = resize_operator(jpeg_image_asset_portrait) assert resized_asset.width == 9 assert resized_asset.height == 15
def test_resize_in_fill_mode_preserves_aspect_ratio_for_landscape_image( self, pillow_processor, width, height): jpeg_image_asset_landscape = jpeg_image_asset(width=width, height=height) fill_asset_operator = pillow_processor.resize( width=9, height=10, mode=madam.image.ResizeMode.FILL) filling_asset = fill_asset_operator(jpeg_image_asset_landscape) assert filling_asset.width == 13 assert filling_asset.height == 10