django-imagekit/tests/tests.py

63 lines
1.8 KiB
Python
Raw Normal View History

import os
import tempfile
2008-12-31 17:54:47 +00:00
import unittest
from django.conf import settings
from django.core.files.base import ContentFile
2008-12-31 17:54:47 +00:00
from django.test import TestCase
2009-01-08 21:11:15 +00:00
from imagekit.lib import Image
2008-12-31 17:54:47 +00:00
class IKTest(TestCase):
""" Base TestCase class """
2009-09-02 18:20:43 +00:00
def generate_image(self):
tmp = tempfile.TemporaryFile()
Image.new('RGB', (800, 600)).save(tmp, 'JPEG')
tmp.seek(0)
return tmp
2009-12-19 16:01:54 +00:00
2008-12-31 17:54:47 +00:00
def setUp(self):
self.p = TestPhoto()
2009-09-02 18:20:43 +00:00
img = self.generate_image()
self.p.save_image('test.jpeg', ContentFile(img.read()))
self.p.save()
2009-09-02 18:20:43 +00:00
img.close()
2009-12-19 16:01:54 +00:00
2009-09-02 18:20:43 +00:00
def test_save_image(self):
img = self.generate_image()
path = self.p.image.path
self.p.save_image('test2.jpeg', ContentFile(img.read()))
self.failIf(os.path.isfile(path))
path = self.p.image.path
img.seek(0)
self.p.save_image('test.jpeg', ContentFile(img.read()))
self.failIf(os.path.isfile(path))
img.close()
2009-12-19 16:01:54 +00:00
def test_setup(self):
self.assertEqual(self.p.image.width, 800)
self.assertEqual(self.p.image.height, 600)
2009-12-19 16:01:54 +00:00
def test_to_width(self):
self.assertEqual(self.p.to_width.width, 100)
self.assertEqual(self.p.to_width.height, 75)
2009-12-19 16:01:54 +00:00
2009-01-06 19:19:10 +00:00
def test_to_height(self):
self.assertEqual(self.p.to_height.width, 133)
self.assertEqual(self.p.to_height.height, 100)
2009-12-19 16:01:54 +00:00
2009-01-06 19:19:10 +00:00
def test_crop(self):
self.assertEqual(self.p.cropped.width, 100)
self.assertEqual(self.p.cropped.height, 100)
2008-12-31 17:54:47 +00:00
def test_url(self):
tup = (settings.MEDIA_URL, self.p._ik.cache_dir,
'images/test_to_width.jpeg')
self.assertEqual(self.p.to_width.url, "%s%s/%s" % tup)
2009-12-19 16:01:54 +00:00
2008-12-31 17:54:47 +00:00
def tearDown(self):
# make sure image file is deleted
path = self.p.image.path
self.p.delete()
self.failIf(os.path.isfile(path))