test_validate_post.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from __future__ import unicode_literals
  2. from django.urls import reverse
  3. from misago.categories.models import Category
  4. from misago.users.testutils import AuthenticatedUserTestCase
  5. class ValidatePostTests(AuthenticatedUserTestCase):
  6. def setUp(self):
  7. super(ValidatePostTests, self).setUp()
  8. self.category = Category.objects.get(slug='first-category')
  9. self.api_link = reverse('misago:api:thread-list')
  10. def test_title_validation(self):
  11. """validate_post tests title"""
  12. response = self.client.post(
  13. self.api_link,
  14. data={
  15. 'category': self.category.pk,
  16. 'title': 'Check our l33t CaSiNo!',
  17. 'post': 'Lorem ipsum dolor met!',
  18. }
  19. )
  20. self.assertContains(response, "Don't discuss gambling!", status_code=400)
  21. # clean title passes validation
  22. response = self.client.post(
  23. self.api_link,
  24. data={
  25. 'category': self.category.pk,
  26. 'title': 'Check our l33t place!',
  27. 'post': 'Lorem ipsum dolor met!',
  28. }
  29. )
  30. self.assertEqual(response.status_code, 200)
  31. def test_post_validation(self):
  32. """validate_post tests post content"""
  33. response = self.client.post(
  34. self.api_link,
  35. data={
  36. 'category': self.category.pk,
  37. 'title': 'Lorem ipsum dolor met!',
  38. 'post': 'Check our l33t CaSiNo!',
  39. }
  40. )
  41. self.assertContains(response, "Don't discuss gambling!", status_code=400)
  42. # clean post passes validation
  43. response = self.client.post(
  44. self.api_link,
  45. data={
  46. 'category': self.category.pk,
  47. 'title': 'Lorem ipsum dolor met!',
  48. 'post': 'Check our l33t place!',
  49. }
  50. )
  51. self.assertEqual(response.status_code, 200)
  52. def test_empty_input(self):
  53. """validate_post handles empty input"""
  54. response = self.client.post(
  55. self.api_link, data={
  56. 'category': self.category.pk,
  57. }
  58. )
  59. self.assertEqual(response.status_code, 400)
  60. response = self.client.post(
  61. self.api_link, data={
  62. 'category': self.category.pk,
  63. 'title': '',
  64. 'post': '',
  65. }
  66. )
  67. self.assertEqual(response.status_code, 400)