Files
mayan-edms/mayan/apps/converter/tests/test_classes.py
Roberto Rosario c0194c63dc Refactor document page image generation and transformation classes
to cache all transformed versions of a document page.
2016-11-02 02:34:57 -04:00

93 lines
3.0 KiB
Python

from __future__ import unicode_literals
from django.test import TestCase
from ..classes import (
BaseTransformation, TransformationResize, TransformationRotate,
TransformationZoom
)
TRANSFORMATION_RESIZE_WIDTH = 123
TRANSFORMATION_RESIZE_HEIGHT = 528
TRANSFORMATION_RESIZE_CACHE_HASH = '2cbabd3aaafdaf8f'
TRANSFORMATION_RESIZE_WIDTH_2 = 124
TRANSFORMATION_RESIZE_HEIGHT_2 = 529
TRANSFORMATION_RESIZE_CACHE_HASH_2 = '2cbabd3aaafdaf89'
TRANSFORMATION_ROTATE_DEGRESS = 34
TRANSFORMATION_ROTATE_CACHE_HASH = '2f9d036e13aacb48'
TRANSFORMATION_COMBINED_CACHE_HASH = '44a3b262e18b5d5d'
TRANSFORMATION_ZOOM_PERCENT = 49
TRANSFORMATION_ZOOM_CACHE_HASH = '47840c3658dc399a'
class TransformationTestCase(TestCase):
def test_resize_cache_hashing(self):
# Test if the hash is being generated correctly
transformation = TransformationResize(
width=TRANSFORMATION_RESIZE_WIDTH,
height=TRANSFORMATION_RESIZE_HEIGHT
)
self.assertEqual(
transformation.cache_hash(), TRANSFORMATION_RESIZE_CACHE_HASH
)
# Test if the hash is being alternated correctly
transformation = TransformationResize(
width=TRANSFORMATION_RESIZE_WIDTH_2,
height=TRANSFORMATION_RESIZE_HEIGHT_2
)
self.assertEqual(
transformation.cache_hash(), TRANSFORMATION_RESIZE_CACHE_HASH_2
)
def test_rotate_cache_hashing(self):
# Test if the hash is being generated correctly
transformation = TransformationRotate(
degrees=TRANSFORMATION_ROTATE_DEGRESS
)
self.assertEqual(
transformation.cache_hash(), TRANSFORMATION_ROTATE_CACHE_HASH
)
def test_rotate_zoom_hashing(self):
# Test if the hash is being generated correctly
transformation = TransformationZoom(
percent=TRANSFORMATION_ZOOM_PERCENT
)
self.assertEqual(
transformation.cache_hash(), TRANSFORMATION_ZOOM_CACHE_HASH
)
def test_cache_hash_combining(self):
# Test magic method and hash combining
transformation_resize = TransformationResize(
width=TRANSFORMATION_RESIZE_WIDTH,
height=TRANSFORMATION_RESIZE_HEIGHT
)
transformation_rotate = TransformationRotate(
degrees=TRANSFORMATION_ROTATE_DEGRESS
)
transformation_zoom = TransformationZoom(
percent=TRANSFORMATION_ZOOM_PERCENT
)
#self.assertEqual(
# #transformation_rotate ^ transformation_resize ^ transformation_zoom,
# transformation_rotate ^ transformation_resize ^ transformation_zoom,
# #transformation_resize ^ transformation_zoom,
# TRANSFORMATION_COMBINED_CACHE_HASH
#)
self.assertEqual(
BaseTransformation.combine(
(transformation_rotate, transformation_resize, transformation_zoom)
), TRANSFORMATION_COMBINED_CACHE_HASH
)