23
24
from django.contrib.auth.models import User
24
25
from django.core.files.uploadedfile import SimpleUploadedFile
25
26
from django.test.client import Client
26
from django.core.urlresolvers import reverse
27
from django.urls import reverse
27
28
from django.db import IntegrityError
29
30
from models import Image
32
33
from views import upload
34
36
class _TestUploadingBase(TestCase):
36
def _make_new_uploaded_image(name,type="bmp"):
39
def _make_new_uploaded_image(name, type='bmp'):
38
i = PIL.new("RGB",(4,4))
42
return SimpleUploadedFile(name,sio.read(),content_type="image/%s" % type)
41
i = PIL.Image.new('RGB', (4, 4))
45
return SimpleUploadedFile(name, sio.read(), content_type='image/%s' % type)
45
48
# We need some dummy objects
47
self.u = User.objects.create(username="paul")
50
self.u = User.objects.create(username='paul')
49
self.ct = ContentType.objects.create( app_label="test",model="TestModel")
52
self.ct = ContentType.objects.create(
53
app_label='test', model='TestModel')
51
self.t1 = self._make_new_uploaded_image("test.png");
52
self.t2 = self._make_new_uploaded_image("test.png");
53
self.o1 = self._make_new_uploaded_image("othername.png");
55
self.t1 = self._make_new_uploaded_image('test.png')
56
self.t2 = self._make_new_uploaded_image('test.png')
57
self.o1 = self._make_new_uploaded_image('othername.png')
59
63
# MODEL TESTS (need database, are slow) #
60
64
###########################################################################
61
65
class TestImages_TestModelAdding_ExceptCorrectResult(_TestUploadingBase):
63
self.assertFalse( Image.objects.has_image("test"))
64
u = Image.objects.create( user=self.u, content_type=self.ct, object_id=1,
65
name="test", revision=1)
66
self.assertEqual( Image.objects.get( name="test",revision=1), u )
67
self.assertTrue( Image.objects.has_image("test"))
68
self.assertFalse(Image.objects.has_image('test'))
69
u = Image.objects.create(user=self.u, content_type=self.ct, object_id=1,
70
name='test', revision=1)
71
self.assertEqual(Image.objects.get(name='test', revision=1), u)
72
self.assertTrue(Image.objects.has_image('test'))
68
75
class TestImages_TestModelAddingTwiceTheSameNameAndRevision_ExceptRaises(_TestUploadingBase):
70
u = Image.objects.create( user=self.u, content_type=self.ct, object_id=1,
71
name="test", revision=1)
72
self.assertRaises( Image.AlreadyExisting, Image.objects.create, **{"user":self.u, "content_type": self.ct, "object_id":1,
73
"name": "test", "revision" :1 })
78
u = Image.objects.create(user=self.u, content_type=self.ct, object_id=1,
79
name='test', revision=1)
80
self.assertRaises(Image.AlreadyExisting, Image.objects.create, **{'user': self.u, 'content_type': self.ct, 'object_id': 1,
81
'name': 'test', 'revision': 1})
74
84
class TestImages_TestModelAddingTwiceTheSameNameDifferentRevision_ExceptRaises(_TestUploadingBase):
76
u = Image.objects.create( user=self.u, content_type=self.ct, object_id=1,
77
name="test", revision=1)
78
u = Image.objects.create( user=self.u, content_type=self.ct, object_id=1,
79
name="test", revision=2)
80
self.assertEqual(Image.objects.filter(name="test").count(),2)
87
u = Image.objects.create(user=self.u, content_type=self.ct, object_id=1,
88
name='test', revision=1)
89
u = Image.objects.create(user=self.u, content_type=self.ct, object_id=1,
90
name='test', revision=2)
91
self.assertEqual(Image.objects.filter(name='test').count(), 2)