5
5
from django.test import TestCase as DjangoTest, Client
6
6
from django.core.urlresolvers import reverse
7
7
from django.contrib.auth.models import User
8
# NOCOMM: Not used, but should be replaced with python json because it gets removed in django 1.7
9
#from django.utils import simplejson as json
8
from django.utils import simplejson as json
10
9
from wlmaps.models import *
37
36
class TestWLMaps_ValidUpload_ExceptCorrectResult(_LoginToSite):
39
38
url = reverse('wlmaps_upload')
40
c = self.client.post(url, {'file': open(elven_forests,"rb"), 'test': True })
39
k = self.client.post(url, {'mapfile': open(elven_forests,"rb"), 'test': True })
40
rv = json.loads( k.content )
41
self.assertEqual(rv["success_code"], 0)
42
self.assertEqual(rv["map_id"], 1)
42
44
o = Map.objects.get(pk=1)
43
45
self.assertEqual(o.name, "Elven Forests")
45
47
class TestWLMaps_AnonUpload_ExceptRedirect(DjangoTest):
47
49
url = reverse('wlmaps_upload')
48
k = self.client.post(url, {'file': open(elven_forests,"rb") })
50
k = self.client.post(url, {'mapfile': open(elven_forests,"rb") })
49
51
self.assertRedirects( k, reverse('django.contrib.auth.views.login') + '?next=%s' %url )
52
class TestWLMaps_UploadGet_ExceptNotAllowed(_LoginToSite):
54
k = self.client.get(reverse('wlmaps_upload'))
55
self.assertEqual( k.status_code, 405 )
56
self.assertEqual( k["allow"], 'post' )
52
59
# Invalid Uploading
53
60
class TestWLMaps_UploadWithoutMap_ExceptError(_LoginToSite):
55
62
url = reverse('wlmaps_upload')
56
63
k = self.client.post(url, {'test': True })
57
self.assertEqual(len(Map.objects.all()), 0)
64
rv = json.loads( k.content )
65
self.assertEqual(rv["success_code"], 1)
58
66
class TestWLMaps_UploadTwice_ExceptCorrectResult(_LoginToSite):
60
68
url = reverse('wlmaps_upload')
61
self.client.post(url, {'file': open(elven_forests,"rb"), 'test': True })
62
self.assertEqual(len(Map.objects.all()), 1)
64
self.client.post(url, {'file': open(elven_forests,"rb"), 'test': True })
65
self.assertEqual(len(Map.objects.all()), 1)
69
k = self.client.post(url, {'mapfile': open(elven_forests,"rb"), 'test': True })
70
rv = json.loads( k.content )
71
self.assertEqual(rv["success_code"], 0)
72
self.assertEqual(rv["map_id"], 1)
74
k = self.client.post(url, {'mapfile': open(elven_forests,"rb"), 'test': True })
75
rv = json.loads( k.content )
76
self.assertEqual(rv["success_code"], 2)
66
77
class TestWLMaps_UploadWithInvalidMap_ExceptError(_LoginToSite):
68
79
url = reverse('wlmaps_upload')
69
self.client.post(url, {'file': open(__file__,"rb"), 'test': True })
70
self.assertEqual(len(Map.objects.all()), 0)
80
k = self.client.post(url, {'mapfile': open(__file__,"rb"), 'test': True })
81
rv = json.loads( k.content )
82
self.assertEqual(rv["success_code"], 3)
73
85
class TestWLMapsViews_Viewing(DjangoTest):
75
87
self.user = User.objects.create(username="testuser")
79
91
nm = Map.objects.create(
147
158
reverse("wlmaps_rate",args=("a-map-that-doesnt-exist",)),
149
160
self.assertEqual(c.status_code, 404 )
151
162
def test_RatingGet_Except405(self):
152
163
c = self.client.get(
153
164
reverse("wlmaps_rate",args=("map",)),
155
166
self.assertEqual(c.status_code, 405 )
157
168
def test_RatingInvalidValue_Except400(self):
158
169
c = self.client.post(
159
170
reverse("wlmaps_rate",args=("map",)),
161
172
self.assertEqual(c.status_code, 400 )
163
174
def test_RatingNonIntegerValue_Except400(self):
164
175
c = self.client.post(
165
176
reverse("wlmaps_rate",args=("map",)),
166
177
{ "vote": "shubidu" } )
167
178
self.assertEqual(c.status_code, 400 )
169
180
def test_RatingExistingMap_ExceptCorrectResult(self):
170
181
c = self.client.post(
171
182
reverse("wlmaps_rate",args=("map",)),