Ejemplo n.º 1
0
class BaseEngineTestCase(unittest.TestCase):

    def setUp(self):
        self.engine = BaseThumbnailEngine()

    def test__calculate_scaling_factor_without_crop(self):
        calculate_scaling_factor = self.engine._calculate_scaling_factor
        original_size = (400, 600)
        self.assertEqual(calculate_scaling_factor(original_size, (400, 600), False), 1)
        self.assertEqual(calculate_scaling_factor(original_size, (100, 600), False), 0.25)
        self.assertEqual(calculate_scaling_factor(original_size, (400, 300), False), 0.5)
        self.assertEqual(calculate_scaling_factor(original_size, (200, 300), False), 0.5)
        self.assertEqual(calculate_scaling_factor(original_size, (200, None), False), 0.5)
        self.assertEqual(calculate_scaling_factor(original_size, (None, 300), False), 0.5)

    def test_create_thumbnail_object(self):
        name = ['851', '521c21fe9709802e9d4eb20a5fe84c18cd3ad']
        self.assertIsInstance(self.engine.create_thumbnail_object(name), Thumbnail)

    def test_parse_size(self):
        self.assertEqual(self.engine.parse_size('100'), (100, None))
        self.assertEqual(self.engine.parse_size('100x200'), (100, 200))
        self.assertEqual(self.engine.parse_size('1x10'), (1, 10))
        self.assertEqual(self.engine.parse_size('x1000'), (None, 1000))

    def test_parse_crop(self):
        self.assertEqual(self.engine.parse_crop('center', (200, 200), (100, 100)), (50, 50))
        self.assertEqual(self.engine.parse_crop('top', (200, 200), (100, 100)), (50, 0))
        self.assertEqual(self.engine.parse_crop('bottom', (200, 200), (100, 100)), (50, 100))
        self.assertEqual(self.engine.parse_crop('left', (200, 200), (100, 100)), (0, 50))
        self.assertEqual(self.engine.parse_crop('right', (200, 200), (100, 100)), (100, 50))

    def test_calculate_offset(self):
        self.assertEqual(self.engine.calculate_offset(0, 1000, 200), 0)
        self.assertEqual(self.engine.calculate_offset(50, 1000, 200), 400)
        self.assertEqual(self.engine.calculate_offset(100, 1000, 200), 800)

    def test_evaluate_options(self):
        self.assertEqual(self.engine.evaluate_options(None), self.engine.default_options())
        self.assertEqual(self.engine.evaluate_options({}), self.engine.default_options())
        self.assertEqual(self.engine.evaluate_options({'quality': 50})['quality'], 50)
        self.assertEqual(
            len(self.engine.evaluate_options({'quality': 50}).keys()),
            len(self.engine.evaluate_options({}).keys()),
        )

    def test_calculate_alternative_resolution_size(self):
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(2, (100, None)),
            (200, None)
        )
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(2, (100, 150)),
            (200, 300)
        )
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(2, (None, 150)),
            (None, 300)
        )
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(1.5, (100, 100)),
            (150, 150)
        )

    @mock.patch('thumbnails.engines.base.BaseThumbnailEngine.engine_colormode')
    def test_colormode(self, mock_engine_colormode):
        self.engine.colormode(None, {'colormode': 'RGB'})
        mock_engine_colormode.assert_called_once_with(None, 'RGB')

    @mock.patch('thumbnails.engines.base.BaseThumbnailEngine.engine_get_format', lambda *x: None)
    def test_get_format(self):
            self.assertEqual(self.engine.get_format(None, {}), 'JPEG')
            self.assertEqual(self.engine.get_format(None, {'format': 'WEBP'}), 'WEBP')
Ejemplo n.º 2
0
class BaseEngineTestCase(unittest.TestCase):
    def setUp(self):
        self.engine = BaseThumbnailEngine()

    def test__calculate_scaling_factor_without_crop(self):
        calculate_scaling_factor = self.engine._calculate_scaling_factor
        original_size = (400, 600)
        self.assertEqual(
            calculate_scaling_factor(original_size, (400, 600), False), 1)
        self.assertEqual(
            calculate_scaling_factor(original_size, (100, 600), False), 0.25)
        self.assertEqual(
            calculate_scaling_factor(original_size, (400, 300), False), 0.5)
        self.assertEqual(
            calculate_scaling_factor(original_size, (200, 300), False), 0.5)
        self.assertEqual(
            calculate_scaling_factor(original_size, (200, None), False), 0.5)
        self.assertEqual(
            calculate_scaling_factor(original_size, (None, 300), False), 0.5)

    def test_create_thumbnail_object(self):
        name = ['851', '521c21fe9709802e9d4eb20a5fe84c18cd3ad']
        self.assertIsInstance(self.engine.create_thumbnail_object(name),
                              Thumbnail)

    def test_parse_size(self):
        self.assertEqual(self.engine.parse_size('100'), (100, None))
        self.assertEqual(self.engine.parse_size('100x200'), (100, 200))
        self.assertEqual(self.engine.parse_size('1x10'), (1, 10))
        self.assertEqual(self.engine.parse_size('x1000'), (None, 1000))

    def test_parse_crop(self):
        self.assertEqual(
            self.engine.parse_crop('center', (200, 200), (100, 100)), (50, 50))
        self.assertEqual(self.engine.parse_crop('top', (200, 200), (100, 100)),
                         (50, 0))
        self.assertEqual(
            self.engine.parse_crop('bottom', (200, 200), (100, 100)),
            (50, 100))
        self.assertEqual(
            self.engine.parse_crop('left', (200, 200), (100, 100)), (0, 50))
        self.assertEqual(
            self.engine.parse_crop('right', (200, 200), (100, 100)), (100, 50))

    def test_calculate_offset(self):
        self.assertEqual(self.engine.calculate_offset(0, 1000, 200), 0)
        self.assertEqual(self.engine.calculate_offset(50, 1000, 200), 400)
        self.assertEqual(self.engine.calculate_offset(100, 1000, 200), 800)

    def test_evaluate_options(self):
        self.assertEqual(self.engine.evaluate_options(None),
                         self.engine.default_options())
        self.assertEqual(self.engine.evaluate_options({}),
                         self.engine.default_options())
        self.assertEqual(
            self.engine.evaluate_options({'quality': 50})['quality'], 50)
        self.assertEqual(
            len(self.engine.evaluate_options({
                'quality': 50
            }).keys()),
            len(self.engine.evaluate_options({}).keys()),
        )

    def test_calculate_alternative_resolution_size(self):
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(2, (100, None)),
            (200, None))
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(2, (100, 150)),
            (200, 300))
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(2, (None, 150)),
            (None, 300))
        self.assertEqual(
            self.engine.calculate_alternative_resolution_size(1.5, (100, 100)),
            (150, 150))

    @mock.patch('thumbnails.engines.base.BaseThumbnailEngine.engine_colormode')
    def test_colormode(self, mock_engine_colormode):
        self.engine.colormode(None, {'colormode': 'RGB'})
        mock_engine_colormode.assert_called_once_with(None, 'RGB')

    @mock.patch(
        'thumbnails.engines.base.BaseThumbnailEngine.engine_get_format',
        lambda *x: None)
    def test_get_format(self):
        self.assertEqual(self.engine.get_format(None, {}), 'JPEG')
        self.assertEqual(self.engine.get_format(None, {'format': 'WEBP'}),
                         'WEBP')
Ejemplo n.º 3
0
 def setUp(self):
     self.engine = BaseThumbnailEngine()
Ejemplo n.º 4
0
 def setUp(self):
     self.engine = BaseThumbnailEngine()