tests.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. import json
  2. from django.core.urlresolvers import reverse
  3. from django.test import TestCase
  4. from misago.conf import settings
  5. class TermsOfServiceTests(TestCase):
  6. def tearDown(self):
  7. settings.reset_settings()
  8. def test_404_on_no_tos(self):
  9. """TOS view returns 404 when no TOS is set"""
  10. self.assertFalse(settings.terms_of_service_link)
  11. self.assertFalse(settings.terms_of_service)
  12. response = self.client.get(reverse('misago:terms_of_service'))
  13. self.assertEqual(response.status_code, 404)
  14. def test_301_on_link_tos(self):
  15. """TOS view returns 302 redirect when link is set"""
  16. settings.override_setting('terms_of_service_link', 'http://test.com')
  17. settings.override_setting('terms_of_service', 'Lorem ipsum')
  18. self.assertTrue(settings.terms_of_service_link)
  19. self.assertTrue(settings.terms_of_service)
  20. response = self.client.get(reverse('misago:terms_of_service'))
  21. self.assertEqual(response.status_code, 302)
  22. self.assertEqual(response['location'], 'http://test.com')
  23. def test_200_on_link_tos(self):
  24. """TOS view returns 200 when custom tos content is set"""
  25. settings.override_setting('terms_of_service_title', 'Test ToS')
  26. settings.override_setting('terms_of_service', 'Lorem ipsum dolor')
  27. self.assertTrue(settings.terms_of_service_title)
  28. self.assertTrue(settings.terms_of_service)
  29. response = self.client.get(reverse('misago:terms_of_service'))
  30. self.assertEqual(response.status_code, 200)
  31. self.assertIn('Test ToS', response.content)
  32. self.assertIn('Lorem ipsum dolor', response.content)
  33. class PrivacyPolicyTests(TestCase):
  34. def tearDown(self):
  35. settings.reset_settings()
  36. def test_404_on_no_policy(self):
  37. """policy view returns 404 when no policy is set"""
  38. self.assertFalse(settings.privacy_policy_link)
  39. self.assertFalse(settings.privacy_policy)
  40. response = self.client.get(reverse('misago:privacy_policy'))
  41. self.assertEqual(response.status_code, 404)
  42. def test_301_on_link_policy(self):
  43. """policy view returns 302 redirect when link is set"""
  44. settings.override_setting('privacy_policy_link', 'http://test.com')
  45. settings.override_setting('privacy_policy', 'Lorem ipsum')
  46. self.assertTrue(settings.privacy_policy_link)
  47. self.assertTrue(settings.privacy_policy)
  48. response = self.client.get(reverse('misago:privacy_policy'))
  49. self.assertEqual(response.status_code, 302)
  50. self.assertEqual(response['location'], 'http://test.com')
  51. def test_200_on_link_policy(self):
  52. """policy view returns 200 when custom tos content is set"""
  53. settings.override_setting('privacy_policy_title', 'Test Policy')
  54. settings.override_setting('privacy_policy', 'Lorem ipsum dolor')
  55. self.assertTrue(settings.privacy_policy_title)
  56. self.assertTrue(settings.privacy_policy)
  57. response = self.client.get(reverse('misago:privacy_policy'))
  58. self.assertEqual(response.status_code, 200)
  59. self.assertIn('Test Policy', response.content)
  60. self.assertIn('Lorem ipsum dolor', response.content)
  61. class APIViewTests(TestCase):
  62. def tearDown(self):
  63. settings.reset_settings()
  64. def test_404_responses(self):
  65. """/legal-pages/ api returns 404 for unset pages"""
  66. settings.override_setting('privacy_policy_link', '')
  67. settings.override_setting('privacy_policy', '')
  68. settings.override_setting('terms_of_service_link', '')
  69. settings.override_setting('terms_of_service', '')
  70. response = self.client.get(reverse('misago:api:legal_page', kwargs={
  71. 'page': 'privacy-policy'
  72. }))
  73. self.assertEqual(response.status_code, 404)
  74. response = self.client.get(reverse('misago:api:legal_page', kwargs={
  75. 'page': 'terms-of-service'
  76. }))
  77. self.assertEqual(response.status_code, 404)
  78. def test_invalid_page_404_response(self):
  79. """non-exisisting legal page returns 404"""
  80. response = self.client.get(
  81. reverse('misago:api:legal_page', kwargs={'page': 'lol-nope'}))
  82. self.assertEqual(response.status_code, 404)
  83. def test_privacy_policy_responses(self):
  84. """/legal-pages/privacy-policy/ returns valid json"""
  85. settings.override_setting(
  86. 'privacy_policy_link', 'http://somewhere.com')
  87. settings.override_setting('privacy_policy', 'I am Bob Boberson!')
  88. response = self.client.get(reverse('misago:api:legal_page', kwargs={
  89. 'page': 'privacy-policy'
  90. }))
  91. self.assertEqual(response.status_code, 200)
  92. data = json.loads(response.content)
  93. self.assertEqual(data['id'], 'privacy-policy')
  94. self.assertEqual(data['link'], 'http://somewhere.com')
  95. self.assertEqual(data['body'], '<p>I am Bob Boberson!</p>')
  96. def test_terms_of_service_responses(self):
  97. """/legal-pages/terms-of-policy/ returns valid json"""
  98. settings.override_setting(
  99. 'terms_of_service_link', 'http://somewhere.com')
  100. settings.override_setting('terms_of_service', 'I am Bob Boberson!')
  101. response = self.client.get(reverse('misago:api:legal_page', kwargs={
  102. 'page': 'terms-of-service'
  103. }))
  104. self.assertEqual(response.status_code, 200)
  105. data = json.loads(response.content)
  106. self.assertEqual(data['id'], 'terms-of-service')
  107. self.assertEqual(data['link'], 'http://somewhere.com')
  108. self.assertEqual(data['body'], '<p>I am Bob Boberson!</p>')