Exemple #1
0
    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))
Exemple #2
0
    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))
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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
Exemple #6
0
    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))
Exemple #7
0
    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
Exemple #8
0
    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))
Exemple #9
0
    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'
Exemple #10
0
    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'
Exemple #11
0
    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
Exemple #12
0
    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
Exemple #13
0
    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
Exemple #14
0
    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
Exemple #15
0
    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
Exemple #16
0
    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))
Exemple #17
0
    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
Exemple #18
0
    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))
Exemple #19
0
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
Exemple #20
0
    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
Exemple #21
0
    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
Exemple #22
0
    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