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')