test_validate_post.py 2.4 KB

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