test_rest_permissions.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from django.urls import reverse
  2. from misago.users.models import Ban
  3. from misago.users.testutils import UserTestCase
  4. class UnbannedOnlyTests(UserTestCase):
  5. def setUp(self):
  6. self.user = self.get_authenticated_user()
  7. def test_api_allows_guests(self):
  8. """policy allows guests"""
  9. response = self.client.post(
  10. reverse('misago:api:send-password-form'), data={'email': self.user.email}
  11. )
  12. self.assertEqual(response.status_code, 200)
  13. def test_api_allows_authenticated(self):
  14. """policy allows authenticated"""
  15. self.login_user(self.user)
  16. response = self.client.post(
  17. reverse('misago:api:send-password-form'), data={'email': self.user.email}
  18. )
  19. self.assertEqual(response.status_code, 200)
  20. def test_api_blocks_banned(self):
  21. """policy blocked banned ip"""
  22. Ban.objects.create(check_type=Ban.IP, banned_value='127.*', user_message='Ya got banned!')
  23. response = self.client.post(
  24. reverse('misago:api:send-password-form'), data={'email': self.user.email}
  25. )
  26. self.assertEqual(response.status_code, 403)
  27. class UnbannedAnonOnlyTests(UserTestCase):
  28. def setUp(self):
  29. self.user = self.get_authenticated_user()
  30. def test_api_allows_guests(self):
  31. """policy allows guests"""
  32. self.user.requires_activation = 1
  33. self.user.save()
  34. response = self.client.post(
  35. reverse('misago:api:send-activation'), data={'email': self.user.email}
  36. )
  37. self.assertEqual(response.status_code, 200)
  38. def test_api_allows_authenticated(self):
  39. """policy blocks authenticated"""
  40. self.login_user(self.user)
  41. response = self.client.post(
  42. reverse('misago:api:send-activation'), data={'email': self.user.email}
  43. )
  44. self.assertEqual(response.status_code, 403)
  45. def test_api_blocks_banned(self):
  46. """policy blocked banned ip"""
  47. Ban.objects.create(check_type=Ban.IP, banned_value='127.*', user_message='Ya got banned!')
  48. response = self.client.post(
  49. reverse('misago:api:send-activation'), data={'email': self.user.email}
  50. )
  51. self.assertEqual(response.status_code, 403)