Commit 93f6d382 by Dudás Ádám

school: refactored view tests

parent 4127180b
......@@ -3,7 +3,9 @@ from django.test import TestCase
from django.test.client import Client
from django.contrib.auth.models import User, Group as AuthGroup
from django.core.exceptions import ValidationError
from django.core.urlresolvers import reverse
from ..models import create_user_profile, Person, Course, Semester, Group
from one.models import UserCloudDetails
class ViewTestCase(TestCase):
def setUp(self):
......@@ -32,79 +34,106 @@ class ViewTestCase(TestCase):
'email': 'test.user@testsite.hu',
'affiliation': ';'.join([affiliation1.name])}
def login(self, follow=False):
url = reverse('login')
resp = self.client.get(url, follow=follow, **self.http_headers)
try:
username = self.http_headers['niifPersonOrgID']
self.user = User.objects.get(username=username)
except KeyError:
pass
except User.DoesNotExist:
pass
return resp
def test_logout(self):
resp = self.client.get('/logout/', follow=False)
resp = self.client.get(reverse('logout'), follow=False)
self.assertEqual(302, resp.status_code)
def test_login(self):
resp = self.client.get('/login/', follow=True, **self.http_headers)
resp = self.login(follow=True)
self.assertEqual(200, resp.status_code)
def test_login_without_id(self):
del self.http_headers['niifPersonOrgID']
resp = self.client.get('/login/', follow=True, **self.http_headers)
resp = self.login(follow=True)
self.assertEqual(200, resp.status_code)
(url, _) = resp.redirect_chain[0]
self.assertIn('/admin', url)
def test_login_without_email(self):
del self.http_headers['email']
resp = self.client.get('/login/', follow=True, **self.http_headers)
resp = self.login(follow=True)
self.assertEqual(403, resp.status_code)
def test_login_without_affiliation(self):
del self.http_headers['affiliation']
resp = self.client.get('/login/', follow=True, **self.http_headers)
resp = self.login(follow=True)
self.assertEqual(200, resp.status_code)
def test_login_without_group_for_affiliation(self):
self.group1.delete()
resp = self.client.get('/login/', follow=True, **self.http_headers)
resp = self.login(follow=True)
self.assertEqual(200, resp.status_code)
def test_language(self):
self.client.get('/login/', **self.http_headers)
u = User.objects.get(username=self.http_headers['niifPersonOrgID'])
p = Person.objects.get(user=u)
self.login()
p = Person.objects.get(user=self.user)
lang = u'en' if p.language == u'hu' else u'hu'
url = reverse('school.views.language', kwargs={'lang': lang})
self.http_headers['HTTP_REFERER'] = '/'
resp = self.client.get('/language/%s/' % lang, follow=False,
**self.http_headers)
resp = self.client.get(url, follow=False, **self.http_headers)
self.assertEqual(302, resp.status_code)
p = Person.objects.get(user=u)
p = Person.objects.get(user=self.user)
self.assertEqual(lang, p.language)
def test_language_with_invalid_parameter(self):
self.client.get('/login/', **self.http_headers)
u = User.objects.get(username=self.http_headers['niifPersonOrgID'])
lang = u'nemvanez' # invalid language
self.login()
lang_before = Person.objects.get(user=self.user).language
new_lang = u'nemvanez' # invalid language
url = reverse('school.views.language', kwargs={'lang': new_lang})
self.http_headers['HTTP_REFERER'] = '/'
resp = self.client.get('/language/%s/' % lang, follow=False,
**self.http_headers)
resp = self.client.get(url, follow=False, **self.http_headers)
self.assertEqual(302, resp.status_code)
p = Person.objects.get(user=u)
self.assertEqual(lang, p.language)
p = Person.objects.get(user=self.user)
self.assertEqual(lang_before, p.language) # language didn't change
def test_language_without_person_for_user(self):
self.client.get('/login/', **self.http_headers)
u = User.objects.get(username=self.http_headers['niifPersonOrgID'])
Person.objects.get(user=u).delete()
lang = u'en'
self.login()
Person.objects.get(user=self.user).delete()
new_lang = u'en'
url = reverse('school.views.language', kwargs={'lang': new_lang})
self.http_headers['HTTP_REFERER'] = '/'
resp = self.client.get('/language/%s/' % lang, follow=False,
**self.http_headers)
resp = self.client.get(url, follow=False, **self.http_headers)
self.assertEqual(302, resp.status_code)
def test_group_show(self):
self.client.get('/login/', **self.http_headers)
resp = self.client.get('/group/show/%s/' % self.group1.id)
self.login()
ucd = UserCloudDetails.objects.get(user=self.user)
ucd.share_quota = 10
ucd.save()
gid = self.group1.id
url = reverse('school.views.group_show', kwargs={'gid': gid})
resp = self.client.get(url)
self.assertEqual(200, resp.status_code)
def test_group_show_with_nonexistent_groupid(self):
self.client.get('/login/', **self.http_headers)
self.login()
gid = 1337 # this should be the ID of a non-existent group,
# so if it exists, delete it!
Group.objects.filter(id=gid).delete()
resp = self.client.get('/group/show/%s/' % gid)
Group.objects.filter(id=gid).delete() # so if it exists, delete it!
url = reverse('school.views.group_show', kwargs={'gid': gid})
resp = self.client.get(url)
self.assertEqual(404, resp.status_code)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment