forked from CGM_Public/pretix_original
Unit tests for the authentication forms
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[run]
|
[run]
|
||||||
source = tixlbase,tixlcontrol,tixlpresale
|
source = tixlbase,tixlcontrol,tixlpresale
|
||||||
omit = */migrations/*,*/urls.py
|
omit = */migrations/*,*/urls.py,*/tests/*
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
exclude_lines =
|
exclude_lines =
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
# Create your tests here.
|
|
||||||
0
src/tixlcontrol/tests/__init__.py
Normal file
0
src/tixlcontrol/tests/__init__.py
Normal file
79
src/tixlcontrol/tests/test_auth.py
Normal file
79
src/tixlcontrol/tests/test_auth.py
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
from django.test import TestCase, Client
|
||||||
|
|
||||||
|
from tixlbase.models import User
|
||||||
|
|
||||||
|
|
||||||
|
class LoginFormTest(TestCase):
|
||||||
|
"""
|
||||||
|
This test case tests various methods around the properties /
|
||||||
|
variations concept.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.user = User.objects.create_user('dummy@dummy.dummy', 'dummy@dummy.dummy', 'dummy')
|
||||||
|
|
||||||
|
def test_wrong_credentials(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'foo',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
def test_correct_credentials(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
def test_inactive_account(self):
|
||||||
|
self.user.is_active = False
|
||||||
|
self.user.save()
|
||||||
|
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
def test_redirect(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login?next=/control/events/', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
self.assertIn('/control/events/', response['Location'])
|
||||||
|
|
||||||
|
def test_logged_in(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login?next=/control/events/', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
self.assertIn('/control/events/', response['Location'])
|
||||||
|
|
||||||
|
response = c.get('/control/login')
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
response = c.get('/control/login?next=/control/events/')
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
self.assertIn('/control/events/', response['Location'])
|
||||||
|
|
||||||
|
def test_logout(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
response = c.get('/control/logout')
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
response = c.get('/control/login')
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
69
src/tixlcontrol/tests/test_permissions.py
Normal file
69
src/tixlcontrol/tests/test_permissions.py
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
from django.test import TestCase, Client
|
||||||
|
from django.utils.timezone import now
|
||||||
|
|
||||||
|
from tixlbase.models import Event, Organizer, User, EventPermission
|
||||||
|
|
||||||
|
|
||||||
|
class PermissionMiddlewareTest(TestCase):
|
||||||
|
"""
|
||||||
|
This test case tests various methods around the properties /
|
||||||
|
variations concept.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
o = Organizer.objects.create(name='Dummy', slug='dummy')
|
||||||
|
self.event = Event.objects.create(
|
||||||
|
organizer=o, name='Dummy', slug='dummy',
|
||||||
|
date_from=now(),
|
||||||
|
)
|
||||||
|
self.user = User.objects.create_user('dummy@dummy.dummy', 'dummy@dummy.dummy', 'dummy')
|
||||||
|
|
||||||
|
def test_logged_out(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.get('/control/login')
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
response = c.get('/control/events/')
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
def test_wrong_event(self):
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
response = c.get('/control/event/dummy/dummy/settings')
|
||||||
|
self.assertIn(response.status_code, (403, 404))
|
||||||
|
|
||||||
|
def test_wrong_event_permission(self):
|
||||||
|
EventPermission.objects.create(
|
||||||
|
event=self.event, user=self.user,
|
||||||
|
can_change_settings=False,
|
||||||
|
can_change_items=True,
|
||||||
|
)
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
response = c.get('/control/event/dummy/dummy/settings')
|
||||||
|
self.assertIn(response.status_code, (403, 404))
|
||||||
|
|
||||||
|
def test_correct(self):
|
||||||
|
EventPermission.objects.create(
|
||||||
|
event=self.event, user=self.user,
|
||||||
|
can_change_settings=True,
|
||||||
|
can_change_items=True,
|
||||||
|
)
|
||||||
|
c = Client()
|
||||||
|
response = c.post('/control/login', {
|
||||||
|
'email': 'dummy@dummy.dummy',
|
||||||
|
'password': 'dummy',
|
||||||
|
})
|
||||||
|
self.assertEqual(response.status_code, 302)
|
||||||
|
|
||||||
|
response = c.get('/control/event/dummy/dummy/settings')
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
Reference in New Issue
Block a user