test_rest_permissions.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from django.core.urlresolvers import reverse
  2. from ..models import BAN_IP, Ban
  3. from ..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={
  11. 'email': self.user.email
  12. })
  13. self.assertEqual(response.status_code, 200)
  14. def test_api_allows_authenticated(self):
  15. """policy allows authenticated"""
  16. self.login_user(self.user)
  17. response = self.client.post(
  18. reverse('misago:api:send-password-form'), data={
  19. 'email': self.user.email
  20. })
  21. self.assertEqual(response.status_code, 200)
  22. def test_api_blocks_banned(self):
  23. """policy blocked banned ip"""
  24. Ban.objects.create(
  25. check_type=BAN_IP,
  26. banned_value='127.*',
  27. user_message='Ya got banned!')
  28. response = self.client.post(
  29. reverse('misago:api:send-password-form'), data={
  30. 'email': self.user.email
  31. })
  32. self.assertEqual(response.status_code, 403)
  33. class UnbannedAnonOnlyTests(UserTestCase):
  34. def setUp(self):
  35. self.user = self.get_authenticated_user()
  36. def test_api_allows_guests(self):
  37. """policy allows guests"""
  38. self.user.requires_activation = 1
  39. self.user.save()
  40. response = self.client.post(
  41. reverse('misago:api:send-activation'), data={
  42. 'email': self.user.email
  43. })
  44. self.assertEqual(response.status_code, 200)
  45. def test_api_allows_authenticated(self):
  46. """policy blocks authenticated"""
  47. self.login_user(self.user)
  48. response = self.client.post(
  49. reverse('misago:api:send-activation'), data={
  50. 'email': self.user.email
  51. })
  52. self.assertEqual(response.status_code, 403)
  53. def test_api_blocks_banned(self):
  54. """policy blocked banned ip"""
  55. Ban.objects.create(
  56. check_type=BAN_IP,
  57. banned_value='127.*',
  58. user_message='Ya got banned!')
  59. response = self.client.post(
  60. reverse('misago:api:send-activation'), data={
  61. 'email': self.user.email
  62. })
  63. self.assertEqual(response.status_code, 403)