Extended PROTETED_URLS tests

This commit is contained in:
Tris Forster 2023-03-01 12:41:10 +11:00
parent 4344cb978b
commit caeee16657
3 changed files with 37 additions and 6 deletions

View File

@ -12,6 +12,8 @@ class AccessTestCase(TestCase):
PROJECTS = ()
PROTECTED_URLS = ()
@classmethod
def setUpTestData(cls):
@ -39,6 +41,14 @@ class AccessTestCase(TestCase):
return
def test_protected_views(self):
self.assertAccess({ x: False for x in self.PROTECTED_URLS })
if 'admin' in self.users:
self.client.force_login(self.users['admin'])
self.assertAccess({ x: True for x in self.PROTECTED_URLS })
def login(self, user, passwd):
response = self.client.post('/login', {'username': user, 'password': passwd})
self.assertEqual(response.status_code, 302, f"Failed to login as {user}")

View File

@ -26,6 +26,20 @@ class InterfaceAccessTestCase(AccessTestCase):
{'name': 'Current Repertoire', 'ensemble': 'be-sharps'},
)
PROTECTED_URLS = (
'/ensembles/be-sharps',
'/ensembles/be-sharps/new-project',
'/projects/3',
'/projects/3/resources',
'/projects/3/resources/add',
'/admin/interface/ensemble/',
'/admin/interface/project/',
'/admin/interface/resource/',
'/admin/interface/wikipage/',
)
def test_bad_login(self):
with self.assertRaisesMessage(self.failureException, 'Failed to login as admin'):
self.login('admin', 'admin')

View File

@ -43,6 +43,13 @@ class LibraryTestCase(AccessTestCase):
'/collections/2/works/1/add_to_project',
'/collections/2/works/1/upload',
'/collections/2/docs/1/annotate',
'/admin/library/collection/',
'/admin/library/document/',
'/admin/library/ensembleaccess/',
'/admin/library/orchestration/',
'/admin/library/projectitem/',
'/admin/library/work/',
)
@classmethod
@ -89,12 +96,12 @@ class LibraryTestCase(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_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')