~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to wlimages/tests.py

  • Committer: Holger Rapp
  • Date: 2009-02-26 22:38:49 UTC
  • Revision ID: sirver@kallisto.local-20090226223849-1563ij0uuw0lz0zu
First version of widelands online help

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python -tt
2
 
 
3
 
#!/usr/bin/env python -tt
4
 
# encoding: utf-8
5
 
#
6
 
# File: utests/test_wl_markdown.py
7
 
#
8
 
# Created by Holger Rapp on 2009-02-28.
9
 
# Copyright (c) 2009 HolgerRapp@gmx.net. All rights reserved.
10
 
#
11
 
# Last Modified: $Date$
12
 
#
13
 
 
14
 
# Since we want to include something from one path up,
15
 
# we append the parent path to sys.path
16
 
import sys; sys.path.append("..")
17
 
 
18
 
import Image as PIL
19
 
from cStringIO import StringIO
20
 
 
21
 
from django.test import TestCase
22
 
from django.contrib.contenttypes.models import ContentType
23
 
from django.contrib.auth.models import User
24
 
from django.core.files.uploadedfile import SimpleUploadedFile
25
 
from django.test.client import Client
26
 
from django.core.urlresolvers import reverse
27
 
from django.db import IntegrityError
28
 
 
29
 
from models import Image
30
 
from forms import UploadImageForm
31
 
 
32
 
from views import upload
33
 
 
34
 
class _TestUploadingBase(TestCase):
35
 
    @staticmethod
36
 
    def _make_new_uploaded_image(name,type="bmp"):
37
 
        sio = StringIO()
38
 
        i = PIL.new("RGB",(4,4))
39
 
 
40
 
        i.save(sio,type)
41
 
 
42
 
        return SimpleUploadedFile(name,sio.read(),content_type="image/%s" % type)
43
 
 
44
 
    def setUp(self):
45
 
        # We need some dummy objects
46
 
        # User
47
 
        self.u = User.objects.create(username="paul")
48
 
        # A Content type
49
 
        self.ct = ContentType.objects.create( app_label="test",model="TestModel")
50
 
 
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");
54
 
 
55
 
        self.c = Client()
56
 
 
57
 
 
58
 
###########################################################################
59
 
#                  MODEL TESTS (need database, are slow)                  #
60
 
###########################################################################
61
 
class TestImages_TestModelAdding_ExceptCorrectResult(_TestUploadingBase):
62
 
    def runTest(self):
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
 
class TestImages_TestModelAddingTwiceTheSameNameAndRevision_ExceptRaises(_TestUploadingBase):
69
 
    def runTest(self):
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 })
74
 
class TestImages_TestModelAddingTwiceTheSameNameDifferentRevision_ExceptRaises(_TestUploadingBase):
75
 
    def runTest(self):
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)
81
 
 
82
 
###############
83
 
# Other Tests #
84
 
###############
85
 
# This test is not of much use
86
 
# class TestImages_TestUploadForm_ExceptCorrectResult(_TestUploadingBase):
87
 
#     def runTest(self):
88
 
#         form = UploadImageForm()
89
 
#         self.assertEqual( form.is_valid(), False )
90
 
 
91
 
if __name__ == '__main__':
92
 
    unittest.main()
93
 
    # k = TestWlMarkdown_WikiWordsInLink_ExceptCorrectResult()
94
 
    # unittest.TextTestRunner().run(k)
95