|
@@ -0,0 +1,45 @@
|
|
|
|
+from django.contrib.auth import get_user_model
|
|
|
|
+from django.core.urlresolvers import reverse
|
|
|
|
+
|
|
|
|
+from misago.acl.testutils import override_acl
|
|
|
|
+from misago.admin.testutils import AdminTestCase
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class UserModerationTestCase(AdminTestCase):
|
|
|
|
+ def setUp(self):
|
|
|
|
+ super(UserModerationTestCase, self).setUp()
|
|
|
|
+ self.test_user = get_user_model().objects.create_user(
|
|
|
|
+ "Bob", "bob@bob.com", "Pass.123")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class DeleteUserTests(UserModerationTestCase):
|
|
|
|
+ def test_no_delete_permission(self):
|
|
|
|
+ """user with no permission fails to delete other user"""
|
|
|
|
+ override_acl(self.test_user, {
|
|
|
|
+ 'can_delete_users_newer_than': 0,
|
|
|
|
+ 'can_delete_users_with_less_posts_than': 0,
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ response = self.client.post(reverse('misago:delete_user', kwargs={
|
|
|
|
+ 'user_id': self.test_user.pk
|
|
|
|
+ }))
|
|
|
|
+
|
|
|
|
+ self.assertEqual(response.status_code, 403)
|
|
|
|
+ self.assertIn("delete users.", response.content)
|
|
|
|
+
|
|
|
|
+ def test_delete_user(self):
|
|
|
|
+ """user with permission deletes other user"""
|
|
|
|
+ override_acl(self.test_user, {
|
|
|
|
+ 'can_delete_users_newer_than': 2,
|
|
|
|
+ 'can_delete_users_with_less_posts_than': 2,
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ response = self.client.post(reverse('misago:delete_user', kwargs={
|
|
|
|
+ 'user_id': self.test_user.pk
|
|
|
|
+ }))
|
|
|
|
+
|
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
|
+
|
|
|
|
+ response = self.client.post(reverse('misago:index'))
|
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
|
+ self.assertIn('Bob has been deleted', response.content)
|