Browse Source

Test roles to forum view. #373

Rafał Pitoń 11 years ago
parent
commit
9077f7f12b
1 changed files with 84 additions and 2 deletions
  1. 84 2
      misago/forums/tests/test_permissions_admin_views.py

+ 84 - 2
misago/forums/tests/test_permissions_admin_views.py

@@ -86,8 +86,8 @@ class ForumRoleAdminViewsTests(AdminTestCase):
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
         self.assertTrue(test_role.name not in response.content)
         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(
         self.client.post(
             reverse('misago:admin:permissions:users:new'),
             reverse('misago:admin:permissions:users:new'),
             data=fake_post_data(Role(), {'name': 'Test ForumRole'}))
             data=fake_post_data(Role(), {'name': 'Test ForumRole'}))
@@ -209,3 +209,85 @@ class ForumRoleAdminViewsTests(AdminTestCase):
         self.assertEqual(
         self.assertEqual(
             test_role.forums_acls.get(forum=forum_d).forum_role_id,
             test_role.forums_acls.get(forum=forum_d).forum_role_id,
             role_full.pk)
             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)