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

Merge branch 'chore/assembly_create_view_tests' into 'develop'

Add AssemblyCreateViewTest

See merge request !1016
parents f5ff9e7f 2768d9c6
No related branches found
No related tags found
No related merge requests found
......@@ -26,6 +26,68 @@ class AssemblyListViewTest(BackOfficeTestCase):
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):
def setUp(self):
super().setUp()
......
......@@ -32,6 +32,8 @@ class BackOfficeTestCase(TestCase):
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.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:
self.client.logout()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment