test_user_middleware.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from django.urls import reverse
  2. from ..bans import ban_ip, ban_user
  3. from ..testutils import AuthenticatedUserTestCase
  4. class UserMiddlewareTest(AuthenticatedUserTestCase):
  5. def setUp(self):
  6. super(UserMiddlewareTest, self).setUp()
  7. self.api_link = reverse('misago:api:auth')
  8. self.test_link = reverse('misago:index')
  9. def test_banned_user(self):
  10. """middleware handles user that has been banned in meantime"""
  11. ban_user(self.user)
  12. response = self.client.get(self.test_link)
  13. self.assertEqual(response.status_code, 200)
  14. response = self.client.get(self.api_link)
  15. self.assertEqual(response.status_code, 200)
  16. self.assertIsNone(response.json()['id'])
  17. def test_banned_staff(self):
  18. """middleware handles staff user that has been banned in meantime"""
  19. self.user.is_staff = True
  20. self.user.save()
  21. ban_user(self.user)
  22. response = self.client.get(self.test_link)
  23. self.assertEqual(response.status_code, 200)
  24. response = self.client.get(self.api_link)
  25. self.assertEqual(response.status_code, 200)
  26. self.assertEqual(response.json()['id'], self.user.pk)
  27. def test_ip_banned_user(self):
  28. """middleware handles user that has been banned in meantime"""
  29. ban_ip('127.0.0.1')
  30. response = self.client.get(self.test_link)
  31. self.assertEqual(response.status_code, 200)
  32. response = self.client.get(self.api_link)
  33. self.assertEqual(response.status_code, 200)
  34. self.assertIsNone(response.json()['id'])
  35. def test_ip_banned_staff(self):
  36. """middleware handles staff user that has been banned in meantime"""
  37. self.user.is_staff = True
  38. self.user.save()
  39. ban_ip('127.0.0.1')
  40. response = self.client.get(self.test_link)
  41. self.assertEqual(response.status_code, 200)
  42. response = self.client.get(self.api_link)
  43. self.assertEqual(response.status_code, 200)
  44. self.assertEqual(response.json()['id'], self.user.pk)