Browse Source

#459: tests suite for delete views.

Rafał Pitoń 10 years ago
parent
commit
70b6786219
1 changed files with 68 additions and 0 deletions
  1. 68 0
      misago/users/tests/test_useradmin_views.py

+ 68 - 0
misago/users/tests/test_useradmin_views.py

@@ -1,9 +1,13 @@
+import json
+
 from django.contrib.auth import get_user_model
 from django.contrib.auth import get_user_model
 from django.core import mail
 from django.core import mail
 from django.core.urlresolvers import reverse
 from django.core.urlresolvers import reverse
 
 
 from misago.acl.models import Role
 from misago.acl.models import Role
 from misago.admin.testutils import AdminTestCase
 from misago.admin.testutils import AdminTestCase
+from misago.forums.models import Forum
+from misago.threads.testutils import post_thread, reply_thread
 
 
 from misago.users.models import Ban, Rank
 from misago.users.models import Ban, Rank
 
 
@@ -189,3 +193,67 @@ class UserAdminViewsTests(AdminTestCase):
 
 
         User.objects.get_by_username('Bawww')
         User.objects.get_by_username('Bawww')
         User.objects.get_by_email('reg@stered.com')
         User.objects.get_by_email('reg@stered.com')
+
+    ajax_header = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}
+
+    def test_delete_threads_view(self):
+        """delete user threads view deletes threads"""
+        User = get_user_model()
+        test_user = User.objects.create_user('Bob', 'bob@test.com', 'pass123')
+        test_link = reverse('misago:admin:users:accounts:delete_threads',
+                            kwargs={'user_id': test_user.pk})
+
+        forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
+        [post_thread(forum, poster=test_user) for i in xrange(10)]
+
+        response = self.client.post(test_link, **self.ajax_header)
+        self.assertEqual(response.status_code, 200)
+
+        response_dict = json.loads(response.content)
+        self.assertEqual(response_dict['deleted_count'], 10)
+        self.assertFalse(response_dict['is_completed'])
+
+        response = self.client.post(test_link, **self.ajax_header)
+        self.assertEqual(response.status_code, 200)
+
+        response_dict = json.loads(response.content)
+        self.assertEqual(response_dict['deleted_count'], 0)
+        self.assertTrue(response_dict['is_completed'])
+
+    def test_delete_posts_view(self):
+        """delete user posts view deletes posts"""
+        User = get_user_model()
+        test_user = User.objects.create_user('Bob', 'bob@test.com', 'pass123')
+        test_link = reverse('misago:admin:users:accounts:delete_posts',
+                            kwargs={'user_id': test_user.pk})
+
+        forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
+        thread = post_thread(forum)
+        [reply_thread(thread, poster=test_user) for i in xrange(10)]
+
+        response = self.client.post(test_link, **self.ajax_header)
+        self.assertEqual(response.status_code, 200)
+
+        response_dict = json.loads(response.content)
+        self.assertEqual(response_dict['deleted_count'], 10)
+        self.assertFalse(response_dict['is_completed'])
+
+        response = self.client.post(test_link, **self.ajax_header)
+        self.assertEqual(response.status_code, 200)
+
+        response_dict = json.loads(response.content)
+        self.assertEqual(response_dict['deleted_count'], 0)
+        self.assertTrue(response_dict['is_completed'])
+
+    def test_delete_account_view(self):
+        """delete user account view deletes user account"""
+        User = get_user_model()
+        test_user = User.objects.create_user('Bob', 'bob@test.com', 'pass123')
+        test_link = reverse('misago:admin:users:accounts:delete_account',
+                            kwargs={'user_id': test_user.pk})
+
+        response = self.client.post(test_link, **self.ajax_header)
+        self.assertEqual(response.status_code, 200)
+
+        response_dict = json.loads(response.content)
+        self.assertTrue(response_dict['is_completed'])