forked from varia/varia.website
many many many Varia's websites, work in progress: https://many.vvvvvvaria.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 KiB
7 years ago
|
from thumbnailer import _resizer
|
||
|
from unittest import TestCase, main
|
||
|
import os
|
||
|
from PIL import Image
|
||
|
|
||
|
class ThumbnailerTests(TestCase):
|
||
|
|
||
|
def path(self, filename):
|
||
|
return os.path.join(self.img_path, filename)
|
||
|
|
||
|
def setUp(self):
|
||
|
self.img_path = os.path.join(os.path.dirname(__file__), "test_data")
|
||
|
self.img = Image.open(self.path("sample_image.jpg"))
|
||
|
|
||
|
def testSquare(self):
|
||
|
r = _resizer('square', '100', self.img_path)
|
||
|
output = r.resize(self.img)
|
||
|
self.assertEqual((100, 100), output.size)
|
||
|
|
||
|
def testExact(self):
|
||
|
r = _resizer('exact', '250x100', self.img_path)
|
||
|
output = r.resize(self.img)
|
||
|
self.assertEqual((250, 100), output.size)
|
||
|
|
||
|
def testWidth(self):
|
||
|
r = _resizer('aspect', '250x?', self.img_path)
|
||
|
output = r.resize(self.img)
|
||
|
self.assertEqual((250, 166), output.size)
|
||
|
|
||
|
def testHeight(self):
|
||
|
r = _resizer('aspect', '?x250', self.img_path)
|
||
|
output = r.resize(self.img)
|
||
|
self.assertEqual((375, 250), output.size)
|
||
|
|
||
|
class ThumbnailerFilenameTest(TestCase):
|
||
|
|
||
|
def path(self, *parts):
|
||
|
return os.path.join(self.img_path, *parts)
|
||
|
|
||
|
def setUp(self):
|
||
|
self.img_path = os.path.join(os.path.dirname(__file__), "test_data")
|
||
|
|
||
|
def testRoot(self):
|
||
|
"""Test a file that is in the root of img_path."""
|
||
|
|
||
|
r = _resizer('square', '100', self.img_path)
|
||
|
new_name = r.get_thumbnail_name(self.path('sample_image.jpg'))
|
||
|
self.assertEqual('sample_image_square.jpg', new_name)
|
||
|
|
||
|
def testRootWithSlash(self):
|
||
|
r = _resizer('square', '100', self.img_path + '/')
|
||
|
new_name = r.get_thumbnail_name(self.path('sample_image.jpg'))
|
||
|
self.assertEqual('sample_image_square.jpg', new_name)
|
||
|
|
||
|
def testSubdir(self):
|
||
|
"""Test a file that is in a sub-directory of img_path."""
|
||
|
|
||
|
r = _resizer('square', '100', self.img_path)
|
||
|
new_name = r.get_thumbnail_name(self.path('subdir', 'sample_image.jpg'))
|
||
|
self.assertEqual('subdir/sample_image_square.jpg', new_name)
|
||
|
|
||
|
if __name__=="__main__":
|
||
|
main()
|