~widelands-dev/widelands-website/django_staticfiles

« back to all changes in this revision

Viewing changes to wlimages/tests.py

  • Committer: Holger Rapp
  • Date: 2009-02-21 18:24:02 UTC
  • Revision ID: sirver@kallisto.local-20090221182402-k3tuf5c4gjwslbjf
Main Page contains now the same informations as before

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
17
 
sys.path.append('..')
18
 
 
19
 
import PIL
20
 
from cStringIO import StringIO
21
 
 
22
 
from django.test import TestCase
23
 
from django.contrib.contenttypes.models import ContentType
24
 
from django.contrib.auth.models import User
25
 
from django.core.files.uploadedfile import SimpleUploadedFile
26
 
from django.test.client import Client
27
 
from django.urls import reverse
28
 
from django.db import IntegrityError
29
 
 
30
 
from models import Image
31
 
from forms import UploadImageForm
32
 
 
33
 
from views import upload
34
 
 
35
 
 
36
 
class _TestUploadingBase(TestCase):
37
 
 
38
 
    @staticmethod
39
 
    def _make_new_uploaded_image(name, type='bmp'):
40
 
        sio = StringIO()
41
 
        i = PIL.Image.new('RGB', (4, 4))
42
 
 
43
 
        i.save(sio, type)
44
 
 
45
 
        return SimpleUploadedFile(name, sio.read(), content_type='image/%s' % type)
46
 
 
47
 
    def setUp(self):
48
 
        # We need some dummy objects
49
 
        # User
50
 
        self.u = User.objects.create(username='paul')
51
 
        # A Content type
52
 
        self.ct = ContentType.objects.create(
53
 
            app_label='test', model='TestModel')
54
 
 
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')
58
 
 
59
 
        self.c = Client()
60
 
 
61
 
 
62
 
###########################################################################
63
 
#                  MODEL TESTS (need database, are slow)                  #
64
 
###########################################################################
65
 
class TestImages_TestModelAdding_ExceptCorrectResult(_TestUploadingBase):
66
 
 
67
 
    def runTest(self):
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'))
73
 
 
74
 
 
75
 
class TestImages_TestModelAddingTwiceTheSameNameAndRevision_ExceptRaises(_TestUploadingBase):
76
 
 
77
 
    def runTest(self):
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})
82
 
 
83
 
 
84
 
class TestImages_TestModelAddingTwiceTheSameNameDifferentRevision_ExceptRaises(_TestUploadingBase):
85
 
 
86
 
    def runTest(self):
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)
92
 
 
93
 
###############
94
 
# Other Tests #
95
 
###############
96
 
# This test is not of much use
97
 
# class TestImages_TestUploadForm_ExceptCorrectResult(_TestUploadingBase):
98
 
#     def runTest(self):
99
 
#         form = UploadImageForm()
100
 
#         self.assertEqual( form.is_valid(), False )
101
 
 
102
 
if __name__ == '__main__':
103
 
    unittest.main()
104
 
    # k = TestWlMarkdown_WikiWordsInLink_ExceptCorrectResult()
105
 
    # unittest.TextTestRunner().run(k)