1
#!/usr/bin/env python -tt
4
# File: tests/test_models.py
6
# Created by Holger Rapp on 2009-04-10.
7
# Copyright (c) 2009 HolgerRapp@gmx.net. All rights reserved.
9
# Last Modified: $Date$
12
from settings import THUMBNAIL_SIZE
13
from django.test import TestCase as DjangoTest
14
from django.db import IntegrityError
15
from django.core.files.uploadedfile import SimpleUploadedFile
16
from cStringIO import StringIO
18
from unittest import TestCase
20
from wlscreens.models import *
22
class TestCategoryAdding(DjangoTest):
23
def test_addCategory_exceptCorrectResult(self):
24
c = Category.objects.create(name="A new Revision")
25
self.assertEqual(c.pk,1)
26
self.assertEqual(c.slug, "a-new-revision")
28
class TestCategory(DjangoTest):
29
urls = "wlscreens.test_urls"
30
def test_addCategoryWhichExists_exceptFail(self):
31
Category.objects.create(name="A new Revision").save()
32
self.assertRaises(IntegrityError,
33
Category.objects.create, name="A NEW Revision")
35
def test_CategoryRepr_exceptCorrectResult(self):
36
c = Category.objects.create(name="A new Revision")
37
self.assertEqual(repr(c), "<Category: A new Revision>" )
39
def test_UrlGeneration_exceptCorrectResult(self):
40
c = Category.objects.create(name="build 13")
41
self.assertEqual(c.get_absolute_url(), "/wlscreens/build-13/" )
43
class _ScreenshotBase(DjangoTest):
44
urls = "wlscreens.test_urls"
47
def _make_random_image( size ):
48
img = Image.new( "RGB", size )
52
return SimpleUploadedFile("test.png",png.read())
55
self.c = Category.objects.create(name="build 13")
56
self.c2= Category.objects.create(name="build 14")
58
self.img = _ScreenshotBase._make_random_image((640,480))
60
class TestScreenshotAdding(_ScreenshotBase):
61
def test_AddImage_ExpectCorrectResult(self):
62
i = Screenshot.objects.create(name="First Test",
64
screenshot = self.img,
65
comment = "This rockz!")
66
self.assertEqual(i.pk,1)
67
self.assertEqual(i.thumbnail.width,THUMBNAIL_SIZE[0])
69
class TestScreenshot(_ScreenshotBase):
71
_ScreenshotBase.setUp(self)
73
img = _ScreenshotBase._make_random_image((6,4))
75
self.i = Screenshot.objects.create(name="First Test",
78
comment = "This rockz!")
80
def testAdd_SameNameSameCat_ExceptRaise(self):
81
self.assertRaises( IntegrityError,
82
Screenshot.objects.create, name="First Test",
84
screenshot = self.img,
85
comment = "This is nice!")
86
def testAdd_SameNameOtherCat_ExceptCorrectResult(self):
87
k = Screenshot.objects.create( name="First Test",
89
screenshot = self.img,
90
comment = "This is nice!")
92
def test_Repr_ExceptCorrectResult(self):
93
self.assertEqual(repr(self.i),"<Screenshot: build 13:First Test>")
95
def test_CategoryScreenshots_ExceptCorrectResult(self):
96
c = self.c.screenshots.all()
97
c2 = self.c2.screenshots.all()
98
self.assertTrue( self.i in c )
99
self.assertEqual( c.count(), 1 )
100
self.assertEqual( c2.count(), 0 )