Просмотр исходного кода

Getting started on tests harness for forums admin.

Rafał Pitoń 11 лет назад
Родитель
Сommit
6b10338e0b

+ 0 - 0
misago/forums/tests/__init__.py


+ 49 - 0
misago/forums/tests/test_forum_model.py

@@ -0,0 +1,49 @@
+from django.core.exceptions import ValidationError
+from django.test import TestCase
+from misago.forums.models import Forum
+
+
+class ForumManagerTests(TestCase):
+    def test_private_threads(self):
+        """private_threads returns private threads forum"""
+        forum = Forum.objects.private_threads()
+
+        self.assertEqual(forum.special_role, 'private_threads')
+
+    def test_root_category(self):
+        """root_category returns forums tree root"""
+        forum = Forum.objects.root_category()
+
+        self.assertEqual(forum.special_role, 'root_category')
+
+    def test_all_forums(self):
+        """all_forums returns queryset with forums tree"""
+        root = Forum.objects.root_category()
+
+        test_forum_a = Forum(name='Test', role='category')
+        test_forum_a.insert_at(root,
+                               position='last-child',
+                               save=True)
+
+        test_forum_b = Forum(name='Test 2', role='category')
+        test_forum_b.insert_at(root,
+                               position='last-child',
+                               save=True)
+
+        all_forums = [root, test_forum_a, test_forum_b]
+        no_root = [test_forum_a, test_forum_b]
+
+        self.assertEqual(Forum.objects.all_forums(True).count(),
+                         len(all_forums))
+
+        self.assertEqual(Forum.objects.all_forums().count(),
+                         len(no_root))
+
+        all_forums_from_db = [f for f in Forum.objects.all_forums(True)]
+        no_root_from_db = [f for f in Forum.objects.all_forums()]
+
+        self.assertEqual(len(all_forums_from_db),
+                         len(all_forums))
+
+        self.assertEqual(len(no_root),
+                         len(no_root_from_db))

+ 72 - 0
misago/forums/tests/test_forums_admin_views.py

@@ -0,0 +1,72 @@
+from django.core.urlresolvers import reverse
+from misago.admin.testutils import AdminTestCase
+from misago.forums.models import Forum
+
+
+class ForumAdminViewsTests(AdminTestCase):
+    def test_link_registered(self):
+        """admin nav contains forums link"""
+        response = self.client.get(
+            reverse('misago:admin:forums:nodes:index'))
+
+        self.assertIn(reverse('misago:admin:forums:nodes:index'),
+                      response.content)
+
+    def test_list_view(self):
+        """forums list view returns 200"""
+        response = self.client.get(reverse('misago:admin:forums:nodes:index'))
+
+        self.assertEqual(response.status_code, 200)
+        self.assertIn('No forums', response.content)
+
+    def test_new_view(self):
+        """new forum view has no showstoppers"""
+        root = Forum.objects.root_category()
+
+        response = self.client.get(
+            reverse('misago:admin:forums:nodes:new'))
+        self.assertEqual(response.status_code, 200)
+
+        response = self.client.post(
+            reverse('misago:admin:forums:nodes:new'),
+            data={
+                'name': 'Test Category',
+                'description': 'Lorem ipsum dolor met',
+                'new_parent': root.pk,
+                'role': 'category',
+                'prune_started_after': 0,
+                'prune_replied_after': 0,
+            })
+        self.assertEqual(response.status_code, 302)
+
+        response = self.client.get(reverse('misago:admin:forums:nodes:index'))
+        self.assertEqual(response.status_code, 200)
+        self.assertIn('Test Category', response.content)
+
+        test_category = Forum.objects.all_forums().get(slug='test-category')
+
+        response = self.client.post(
+            reverse('misago:admin:forums:nodes:new'),
+            data={
+                'name': 'Test Forum',
+                'new_parent': test_category.pk,
+                'role': 'forum',
+                'copy_permissions': test_category.pk,
+                'prune_started_after': 0,
+                'prune_replied_after': 0,
+            })
+        self.assertEqual(response.status_code, 302)
+
+        response = self.client.get(reverse('misago:admin:forums:nodes:index'))
+        self.assertEqual(response.status_code, 200)
+        self.assertIn('Test Forum', response.content)
+
+    def test_edit_view(self):
+        """edit forum view has no showstoppers"""
+        private_threads = Forum.objects.private_threads()
+        root = Forum.objects.root_category()
+
+        response = self.client.get(
+            reverse('misago:admin:forums:nodes:edit',
+                    kwargs={'forum_id': private_threads.pk}))
+        self.assertEqual(response.status_code, 302)