From 6ec5808275ab765f9768df4b5038ed7133a4d6d6 Mon Sep 17 00:00:00 2001 From: Tris Forster Date: Thu, 23 Feb 2023 18:36:39 +1100 Subject: [PATCH] Refactored tests --- app/interface/tests/__init__.py | 8 +++++--- app/interface/tests/test_access.py | 8 ++++---- app/library/tests.py | 27 ++++++++++++++++++++++----- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/app/interface/tests/__init__.py b/app/interface/tests/__init__.py index 441c064..d973e05 100644 --- a/app/interface/tests/__init__.py +++ b/app/interface/tests/__init__.py @@ -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 diff --git a/app/interface/tests/test_access.py b/app/interface/tests/test_access.py index ed6b6a5..60bcdad 100644 --- a/app/interface/tests/test_access.py +++ b/app/interface/tests/test_access.py @@ -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): diff --git a/app/library/tests.py b/app/library/tests.py index 6c2f9d6..1d961bd 100644 --- a/app/library/tests.py +++ b/app/library/tests.py @@ -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({