|
@@ -86,8 +86,8 @@ class ForumRoleAdminViewsTests(AdminTestCase):
|
|
|
self.assertEqual(response.status_code, 200)
|
|
|
self.assertTrue(test_role.name not in response.content)
|
|
|
|
|
|
- def test_change_role_forums_permissions_view(self):
|
|
|
- """change role forums perms view"""
|
|
|
+ def test_change_forum_roles_view(self):
|
|
|
+ """change forum roles perms view works"""
|
|
|
self.client.post(
|
|
|
reverse('misago:admin:permissions:users:new'),
|
|
|
data=fake_post_data(Role(), {'name': 'Test ForumRole'}))
|
|
@@ -209,3 +209,85 @@ class ForumRoleAdminViewsTests(AdminTestCase):
|
|
|
self.assertEqual(
|
|
|
test_role.forums_acls.get(forum=forum_d).forum_role_id,
|
|
|
role_full.pk)
|
|
|
+
|
|
|
+ def test_change_role_forums_permissions_view(self):
|
|
|
+ """change role forums perms view works"""
|
|
|
+ root = Forum.objects.root_category()
|
|
|
+ for descendant in root.get_descendants():
|
|
|
+ descendant.delete()
|
|
|
+
|
|
|
+ """
|
|
|
+ Create forums tree for test cases:
|
|
|
+
|
|
|
+ Category A
|
|
|
+ + Forum B
|
|
|
+ Category C
|
|
|
+ + Forum D
|
|
|
+ """
|
|
|
+ root = Forum.objects.root_category()
|
|
|
+ self.client.post(reverse('misago:admin:forums:nodes:new'),
|
|
|
+ data={
|
|
|
+ 'name': 'Category A',
|
|
|
+ 'new_parent': root.pk,
|
|
|
+ 'role': 'category',
|
|
|
+ 'prune_started_after': 0,
|
|
|
+ 'prune_replied_after': 0,
|
|
|
+ })
|
|
|
+ test_category = Forum.objects.get(slug='category-a')
|
|
|
+
|
|
|
+ self.assertEqual(Forum.objects.count(), 3)
|
|
|
+
|
|
|
+ """
|
|
|
+ Create test roles
|
|
|
+ """
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:permissions:users:new'),
|
|
|
+ data=fake_post_data(Role(), {'name': 'Test Role A'}))
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:permissions:users:new'),
|
|
|
+ data=fake_post_data(Role(), {'name': 'Test Role B'}))
|
|
|
+
|
|
|
+ test_role_a = Role.objects.get(name='Test Role A')
|
|
|
+ test_role_b = Role.objects.get(name='Test Role B')
|
|
|
+
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:permissions:forums:new'),
|
|
|
+ data=fake_data({'name': 'Test Comments'}))
|
|
|
+ self.client.post(
|
|
|
+ reverse('misago:admin:permissions:forums:new'),
|
|
|
+ data=fake_data({'name': 'Test Full'}))
|
|
|
+
|
|
|
+ role_comments = ForumRole.objects.get(name='Test Comments')
|
|
|
+ role_full = ForumRole.objects.get(name='Test Full')
|
|
|
+
|
|
|
+ """
|
|
|
+ Test view itself
|
|
|
+ """
|
|
|
+ # See if form page is rendered
|
|
|
+ response = self.client.get(
|
|
|
+ reverse('misago:admin:forums:nodes:permissions',
|
|
|
+ kwargs={'forum_id': test_category.pk}))
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ self.assertIn(test_category.name, response.content)
|
|
|
+ self.assertIn(test_role_a.name, response.content)
|
|
|
+ self.assertIn(test_role_b.name, response.content)
|
|
|
+ self.assertIn(role_comments.name, response.content)
|
|
|
+ self.assertIn(role_full.name, response.content)
|
|
|
+
|
|
|
+ # Assign roles to forums
|
|
|
+ response = self.client.post(
|
|
|
+ reverse('misago:admin:forums:nodes:permissions',
|
|
|
+ kwargs={'forum_id': test_category.pk}),
|
|
|
+ data={
|
|
|
+ ('%s-forum_role' % test_role_a.pk): role_full.pk,
|
|
|
+ ('%s-forum_role' % test_role_b.pk): role_comments.pk,
|
|
|
+ })
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
+
|
|
|
+ # Check that roles were assigned
|
|
|
+ self.assertEqual(
|
|
|
+ test_category.forum_role_set.get(role=test_role_a).forum_role_id,
|
|
|
+ role_full.pk)
|
|
|
+ self.assertEqual(
|
|
|
+ test_category.forum_role_set.get(role=test_role_b).forum_role_id,
|
|
|
+ role_comments.pk)
|