Finally got authentication to somewhere I'm happy
This commit is contained in:
@@ -10,7 +10,7 @@ class AccessTestCase(TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
|
||||
admin = User.objects.create_user(username='admin', password='foobar', is_superuser=True)
|
||||
admin = User.objects.create_user(username='admin', password='foobar', is_superuser=True, is_staff=True)
|
||||
homer = User.objects.create_user(username='homer', password='maggie')
|
||||
|
||||
now = timezone.now()
|
||||
@@ -75,7 +75,7 @@ class AccessTestCase(TestCase):
|
||||
'/ensembles/party-posse/new-project': False,
|
||||
})
|
||||
|
||||
self.authorize('ensemble_detail', ensemble='bleeding-gums')
|
||||
self.authorize(models.Ensemble, slug='bleeding-gums')
|
||||
self.assertAccess({
|
||||
'/ensembles/the-be-sharps': True,
|
||||
'/ensembles/bleeding-gums': True,
|
||||
@@ -105,7 +105,7 @@ class AccessTestCase(TestCase):
|
||||
'/projects/4/resources/add': False,
|
||||
})
|
||||
|
||||
self.client.get(utils.signed_url('project_detail', project=4))
|
||||
self.authorize(models.Project, pk=4)
|
||||
response = self.client.get('/projects')
|
||||
self.assertObjectList(response, ['Open Mic Night', 'Baby on Board'])
|
||||
response = self.client.get('/projects/4')
|
||||
@@ -117,7 +117,8 @@ class AccessTestCase(TestCase):
|
||||
self.assertContains(response, 'You don\'t currently have access to any ensembles')
|
||||
|
||||
def test_anon_authorized_ensemble(self):
|
||||
response = self.client.get(utils.signed_url('ensemble_detail', ensemble='party-posse'))
|
||||
self.authorize(models.Ensemble, slug='party-posse')
|
||||
response = self.client.get('/ensembles/party-posse')
|
||||
self.assertContains(response, 'Party Posse')
|
||||
|
||||
response = self.client.get('/ensembles')
|
||||
@@ -133,9 +134,9 @@ class AccessTestCase(TestCase):
|
||||
self.assertObjectList(response, ['Navy Recruitment Day'])
|
||||
|
||||
def test_anon_authorized_project(self):
|
||||
self.authorize('project_detail', project=4)
|
||||
self.authorize(models.Project, pk=4)
|
||||
self.assertObjectList(self.client.get('/projects'), ['Open Mic Night'])
|
||||
self.assertObjectList(self.client.get('/ensembles'), [])
|
||||
self.assertObjectList(self.client.get('/ensembles'), ['Lisa and the Bleeding Gums'])
|
||||
|
||||
self.assertAccess({
|
||||
'/projects/4': True,
|
||||
@@ -153,9 +154,10 @@ class AccessTestCase(TestCase):
|
||||
'/ensembles/unknown': False,
|
||||
})
|
||||
|
||||
def authorize(self, url, **kwargs):
|
||||
response = self.client.get(utils.signed_url(url, **kwargs))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
def authorize(self, model, **kwargs):
|
||||
object = model.objects.get(**kwargs)
|
||||
response = self.client.get(f'{object.get_absolute_url()}?auth={object.auth()}')
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
def assertAccess(self, urls):
|
||||
for url, expected in urls.items():
|
||||
|
||||
Reference in New Issue
Block a user