Browse Source

Delete forum tests harness.

Rafał Pitoń 11 years ago
parent
commit
2de4d3a549
1 changed files with 127 additions and 1 deletions
  1. 127 1
      misago/forums/tests/test_forums_admin_views.py

+ 127 - 1
misago/forums/tests/test_forums_admin_views.py

@@ -112,7 +112,7 @@ class ForumAdminViewsTests(AdminTestCase):
         self.assertIn('Test Category Edited', response.content)
 
     def test_move_views(self):
-        """move up view has no showstoppers"""
+        """move up/down views have no showstoppers"""
         root = Forum.objects.root_category()
 
         self.client.post(reverse('misago:admin:forums:nodes:new'),
@@ -182,3 +182,129 @@ class ForumAdminViewsTests(AdminTestCase):
         position_a = response.content.find('Category A')
         position_b = response.content.find('Category B')
         self.assertTrue(position_a < position_b)
+
+
+class ForumAdminDeleteViewTests(AdminTestCase):
+    def setUp(self):
+        super(ForumAdminDeleteViewTests, self).setUp()
+        self.root = Forum.objects.root_category()
+
+        """
+        Create forums tree for test cases:
+
+        Category A
+          + Forum B
+            + Subcategory C
+            + Subforum D
+        Category E
+          + Forum F
+        """
+        self.client.post(reverse('misago:admin:forums:nodes:new'),
+                         data={
+                             'name': 'Category A',
+                             'new_parent': self.root.pk,
+                             'role': 'category',
+                             'prune_started_after': 0,
+                             'prune_replied_after': 0,
+                         })
+        self.client.post(reverse('misago:admin:forums:nodes:new'),
+                         data={
+                             'name': 'Category E',
+                             'new_parent': self.root.pk,
+                             'role': 'category',
+                             'prune_started_after': 0,
+                             'prune_replied_after': 0,
+                         })
+
+        self.category_a = Forum.objects.get(slug='category-a')
+        self.category_e = Forum.objects.get(slug='category-e')
+
+        self.client.post(reverse('misago:admin:forums:nodes:new'),
+                         data={
+                             'name': 'Forum B',
+                             'new_parent': self.category_a.pk,
+                             'role': 'forum',
+                             'prune_started_after': 0,
+                             'prune_replied_after': 0,
+                         })
+        self.forum_b = Forum.objects.get(slug='forum-b')
+
+        self.client.post(reverse('misago:admin:forums:nodes:new'),
+                         data={
+                             'name': 'Subcategory C',
+                             'new_parent': self.forum_b.pk,
+                             'role': 'category',
+                             'prune_started_after': 0,
+                             'prune_replied_after': 0,
+                         })
+        self.client.post(reverse('misago:admin:forums:nodes:new'),
+                         data={
+                             'name': 'Subforum D',
+                             'new_parent': self.forum_b.pk,
+                             'role': 'forum',
+                             'prune_started_after': 0,
+                             'prune_replied_after': 0,
+                         })
+        self.subforum_d = Forum.objects.get(slug='subforum-d')
+
+        self.client.post(reverse('misago:admin:forums:nodes:new'),
+                         data={
+                             'name': 'Forum F',
+                             'new_parent': self.category_e.pk,
+                             'role': 'forum',
+                             'prune_started_after': 0,
+                             'prune_replied_after': 0,
+                         })
+
+    def test_delete_forum_and_threads(self):
+        """forum and its contents were deleted"""
+        response = self.client.get(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.subforum_d.pk}))
+        self.assertEqual(response.status_code, 200)
+
+        response = self.client.post(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.subforum_d.pk}),
+            data={'move_children_to': '', 'move_threads_to': '',})
+        self.assertEqual(response.status_code, 302)
+        self.assertEqual(Forum.objects.all_forums().count(), 5)
+
+    def test_delete_forum_move_threads(self):
+        """forum was deleted and its contents were moved"""
+        response = self.client.get(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.forum_b.pk}))
+        self.assertEqual(response.status_code, 200)
+
+        response = self.client.post(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.forum_b.pk}),
+            data={
+                'move_children_to': self.category_e.pk,
+                'move_threads_to': self.subforum_d.pk,
+            })
+        self.assertEqual(response.status_code, 302)
+        self.assertEqual(Forum.objects.all_forums().count(), 5)
+
+    def test_delete_all(self):
+        """forum and its contents were deleted"""
+        response = self.client.get(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.forum_b.pk}))
+        self.assertEqual(response.status_code, 200)
+
+        response = self.client.post(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.forum_b.pk}),
+            data={'move_children_to': self.root.pk, 'move_threads_to': '',})
+        self.assertEqual(response.status_code, 200)
+        self.assertEqual(Forum.objects.all_forums().count(), 6)
+
+        response = self.client.post(
+            reverse('misago:admin:forums:nodes:delete',
+                    kwargs={'forum_id': self.forum_b.pk}),
+            data={'move_children_to': '', 'move_threads_to': '',})
+        self.assertEqual(response.status_code, 302)
+
+        self.assertEqual(Forum.objects.all_forums().count(), 3)