Refactored tests

This commit is contained in:
Tris Forster 2023-02-23 18:36:39 +11:00
parent 948e9deb54
commit 6ec5808275
3 changed files with 31 additions and 12 deletions

View File

@ -30,9 +30,11 @@ class AccessTestCase(TestCase):
cls.ensembles[obj.slug] = obj
cls.projects = {}
for name, ensemble, when in cls.PROJECTS:
obj = cls.ensembles[ensemble].projects.create(name=name, event_date=now+timedelta(days=when))
cls.projects[name] = obj
for details in cls.PROJECTS:
when = details.pop('when', 0)
ensemble = details.pop('ensemble')
obj = cls.ensembles[ensemble].projects.create(event_date=now+timedelta(days=when), **details)
cls.projects[details['name']] = obj
return

View File

@ -19,10 +19,10 @@ class InterfaceAccessTestCase(AccessTestCase):
)
PROJECTS = (
('Baker St', 'bleeding-gums', -12),
('Navy Recruitment Day', 'party-posse', 6),
('Barbershop Contest', 'be-sharps', 28),
('Open Mic Night', 'bleeding-gums', 1)
{'name': 'Baker St', 'ensemble': 'bleeding-gums', 'when': -12},
{'name': 'Navy Recruitment Day', 'ensemble': 'party-posse', 'when': 6},
{'name': 'Barbershop Contest', 'ensemble': 'be-sharps', 'when': 28},
{'name': 'Open Mic Night', 'ensemble': 'bleeding-gums', 'when': 1 },
)
def test_bad_login(self):

View File

@ -4,7 +4,7 @@ from django.contrib.auth.models import User
from interface.models import Ensemble, Project
from . import models
class IntegrationTestCase(AccessTestCase):
class LibraryTestCase(AccessTestCase):
USERS = (
{'username': 'admin', 'password': 'secret', 'is_superuser': True, 'is_staff': True},
@ -18,10 +18,10 @@ class IntegrationTestCase(AccessTestCase):
)
PROJECTS = (
('Baker St', 'bleeding-gums', -12),
('Navy Recruitment Day', 'party-posse', 6),
('Barbershop Contest', 'be-sharps', 28),
('Open Mic Night', 'bleeding-gums', 1)
{'name': 'Baker St', 'ensemble': 'bleeding-gums', 'when': -12},
{'name': 'Navy Recruitment Day', 'ensemble': 'party-posse', 'when': 6},
{'name': 'Barbershop Contest', 'ensemble': 'be-sharps', 'when': 28},
{'name': 'Open Mic Night', 'ensemble': 'bleeding-gums', 'when': 1 },
)
COLLECTIONS = (
@ -33,6 +33,16 @@ class IntegrationTestCase(AccessTestCase):
{'name': 'Baby on Board', 'collection': 'ned'},
)
PROTECTED_URLS = (
'/collections/1',
'/collections/1/add',
'/collections/2/works/1',
'/collections/2/works/1/edit',
'/collections/2/works/1/partset',
'/collections/2/works/1/add_to_project',
'/collections/2/works/1/upload',
)
@classmethod
def setUpTestData(cls):
super().setUpTestData()
@ -65,6 +75,13 @@ class IntegrationTestCase(AccessTestCase):
def test_integration(self):
pass
def test_get_views(self):
self.assertAccess({ x: False for x in self.PROTECTED_URLS })
self.login('admin', 'secret')
self.assertAccess({ x: True for x in self.PROTECTED_URLS })
def test_superuser_access(self):
self.login('admin', 'secret')
self.assertAccess({