test_validate_post.py 2.4 KB

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