test_views.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from misago.legal.models import Agreement
  4. class PrivacyPolicyTests(TestCase):
  5. def setUp(self):
  6. Agreement.objects.invalidate_cache()
  7. def tearDown(self):
  8. Agreement.objects.invalidate_cache()
  9. def test_404_on_no_policy(self):
  10. """policy view returns 404 when no policy is set"""
  11. response = self.client.get(reverse("misago:privacy-policy"))
  12. self.assertEqual(response.status_code, 404)
  13. def test_301_on_link_policy(self):
  14. """policy view returns 302 redirect when link is set"""
  15. Agreement.objects.create(
  16. type=Agreement.TYPE_PRIVACY,
  17. link="http://test.com",
  18. text="Lorem ipsum",
  19. is_active=True,
  20. )
  21. response = self.client.get(reverse("misago:privacy-policy"))
  22. self.assertEqual(response.status_code, 302)
  23. self.assertEqual(response["location"], "http://test.com")
  24. def test_200_on_link_policy(self):
  25. """policy view returns 200 when custom tos content is set"""
  26. Agreement.objects.create(
  27. type=Agreement.TYPE_PRIVACY,
  28. title="Test Policy",
  29. text="Lorem ipsum dolor",
  30. is_active=True,
  31. )
  32. response = self.client.get(reverse("misago:privacy-policy"))
  33. self.assertEqual(response.status_code, 200)
  34. self.assertContains(response, "Test Policy")
  35. self.assertContains(response, "Lorem ipsum dolor")
  36. class TermsOfServiceTests(TestCase):
  37. def setUp(self):
  38. Agreement.objects.invalidate_cache()
  39. def tearDown(self):
  40. Agreement.objects.invalidate_cache()
  41. def test_404_on_no_tos(self):
  42. """TOS view returns 404 when no TOS is set"""
  43. response = self.client.get(reverse("misago:terms-of-service"))
  44. self.assertEqual(response.status_code, 404)
  45. def test_301_on_link_tos(self):
  46. """TOS view returns 302 redirect when link is set"""
  47. Agreement.objects.create(
  48. type=Agreement.TYPE_TOS,
  49. link="http://test.com",
  50. text="Lorem ipsum",
  51. is_active=True,
  52. )
  53. response = self.client.get(reverse("misago:terms-of-service"))
  54. self.assertEqual(response.status_code, 302)
  55. self.assertEqual(response["location"], "http://test.com")
  56. def test_200_on_link_tos(self):
  57. """TOS view returns 200 when custom tos content is set"""
  58. Agreement.objects.create(
  59. type=Agreement.TYPE_TOS,
  60. title="Test ToS",
  61. text="Lorem ipsum dolor",
  62. is_active=True,
  63. )
  64. response = self.client.get(reverse("misago:terms-of-service"))
  65. self.assertEqual(response.status_code, 200)
  66. self.assertContains(response, "Test ToS")
  67. self.assertContains(response, "Lorem ipsum dolor")