Skip to content
Snippets Groups Projects
Commit 2768d9c6 authored by Roang's avatar Roang
Browse files

Add AssemblyCreateViewTest

parent 189a4907
No related branches found
No related tags found
No related merge requests found
...@@ -26,6 +26,68 @@ class AssemblyListViewTest(BackOfficeTestCase): ...@@ -26,6 +26,68 @@ class AssemblyListViewTest(BackOfficeTestCase):
self.assertIn(b'a2, a3', resp.content) self.assertIn(b'a2, a3', resp.content)
class AssemblyCreateViewTest(BackOfficeTestCase):
def setUp(self):
super().setUp()
def test_create_assembly(self):
resp = self.client.get(reverse('backoffice:assembly-create'))
self.assertRedirects(resp, reverse('backoffice:login') + '?next=' + reverse('backoffice:assembly-create'))
# Test with regular user
self.client.force_login(self.non_staff_user)
resp = self.client.get(reverse('backoffice:assembly-create'))
self.assertEqual(resp.status_code, 200)
self.assertTemplateUsed(resp, 'backoffice/assembly_create.html')
resp = self.client.post(reverse('backoffice:assembly-create'), data={'slug': 'a1', 'name': 'a1', 'is_physical': 'true', 'conference': self.conf.id})
self.assertEqual(resp.status_code, 302)
self.assertEqual(Assembly.objects.count(), 1)
assembly = Assembly.objects.first()
self.assertIsNotNone(assembly)
assert assembly is not None
self.assertRedirects(resp, reverse('backoffice:assembly-edit', kwargs={'pk': assembly.pk}))
# Test with staff user
self.client.force_login(self.staff)
resp = self.client.get(reverse('backoffice:assembly-create'))
self.assertEqual(resp.status_code, 200)
self.assertTemplateUsed(resp, 'backoffice/assembly_create.html')
resp = self.client.post(reverse('backoffice:assembly-create'), data={'slug': 'a2', 'name': 'a2', 'is_physical': 'true', 'conference': self.conf.id})
self.assertEqual(resp.status_code, 302)
self.assertEqual(Assembly.objects.count(), 2)
assembly = Assembly.objects.filter(name='a2').first()
self.assertIsNotNone(assembly)
assert assembly is not None
self.assertRedirects(resp, reverse('backoffice:assembly-edit', kwargs={'pk': assembly.pk}))
def test_create_assembly_non_public_conf(self):
self.conf.is_public = False
self.conf.save()
resp = self.client.get(reverse('backoffice:assembly-create'))
self.assertRedirects(resp, reverse('backoffice:login') + '?next=' + reverse('backoffice:assembly-create'))
# Test with regular user, as the conference is not public, the user should not be able to create an assembly
self.client.force_login(self.non_staff_user)
resp = self.client.get(reverse('backoffice:assembly-create'))
self.assertContains(resp, 'Forbidden', status_code=403)
# Test with staff user
self.client.force_login(self.staff)
session = self.client.session
session['conference'] = str(self.conf.slug)
session.save()
resp = self.client.get(reverse('backoffice:assembly-create'))
self.assertEqual(resp.status_code, 200)
self.assertTemplateUsed(resp, 'backoffice/assembly_create.html')
resp = self.client.post(reverse('backoffice:assembly-create'), data={'slug': 'a1', 'name': 'a1', 'is_physical': 'true', 'conference': self.conf.id})
self.assertEqual(resp.status_code, 302)
self.assertEqual(Assembly.objects.count(), 1)
assembly = Assembly.objects.filter(name='a1').first()
self.assertIsNotNone(assembly)
assert assembly is not None
self.assertRedirects(resp, reverse('backoffice:assembly-edit', kwargs={'pk': assembly.pk}))
class AssemblyMembersViewTest(BackOfficeTestCase): class AssemblyMembersViewTest(BackOfficeTestCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
......
...@@ -32,6 +32,8 @@ class BackOfficeTestCase(TestCase): ...@@ -32,6 +32,8 @@ class BackOfficeTestCase(TestCase):
self.staff = PlatformUser.objects.create(username='test_staff', email='staff@where.test') self.staff = PlatformUser.objects.create(username='test_staff', email='staff@where.test')
self.staff_cm = ConferenceMember.objects.create(conference=self.conf, user=self.staff, is_staff=True) self.staff_cm = ConferenceMember.objects.create(conference=self.conf, user=self.staff, is_staff=True)
self.staff_cm.permission_groups.add(Group.objects.get(name='Assembly-Team')) self.staff_cm.permission_groups.add(Group.objects.get(name='Assembly-Team'))
self.non_staff_user = PlatformUser.objects.create(username='test_non_staff', email='no@where.test')
self.non_staff_cm = ConferenceMember.objects.create(conference=self.conf, user=self.non_staff_user)
def tearDown(self) -> None: def tearDown(self) -> None:
self.client.logout() self.client.logout()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment