test_utils.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #-*- coding: utf-8 -*-
  2. from django.core.urlresolvers import reverse
  3. from django.test import TestCase
  4. from django.test.client import RequestFactory
  5. from misago.core.utils import is_request_to_misago, slugify
  6. VALID_PATHS = (
  7. "/",
  8. "/threads/",
  9. )
  10. INVALID_PATHS = (
  11. "",
  12. "somewhere/",
  13. )
  14. class IsRequestToMisagoTests(TestCase):
  15. serialized_rollback = True
  16. def test_is_request_to_misago(self):
  17. """
  18. is_request_to_misago correctly detects requests directed at Misago
  19. """
  20. misago_prefix = reverse('misago:index')
  21. for path in VALID_PATHS:
  22. request = RequestFactory().get('/')
  23. request.path_info = path
  24. self.assertTrue(
  25. is_request_to_misago(request),
  26. '"%s" is not overlapped by "%s"' % (path, misago_prefix))
  27. for path in INVALID_PATHS:
  28. request = RequestFactory().get('/')
  29. request.path_info = path
  30. self.assertFalse(
  31. is_request_to_misago(request),
  32. '"%s" is overlapped by "%s"' % (path, misago_prefix))
  33. class SlugifyTests(TestCase):
  34. serialized_rollback = True
  35. def test_valid_slugify_output(self):
  36. """Misago's slugify correcly slugifies string"""
  37. test_cases = (
  38. (u'Bob', u'bob'),
  39. (u'Eric The Fish', u'eric-the-fish'),
  40. (u'John Snow', u'john-snow'),
  41. (u'J0n', u'j0n'),
  42. (u'An###ne', u'anne'),
  43. (u'S**t', u'st'),
  44. (u'Łók', u'lok'),
  45. )
  46. for original, slug in test_cases:
  47. self.assertEqual(slugify(original), slug)