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

5 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()