test_jsi18n.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. from django.conf import settings
  3. from django.test import TestCase
  4. from django.urls import reverse
  5. from django.utils import translation
  6. MISAGO_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  7. LOCALES_DIR = os.path.join(MISAGO_DIR, 'locale')
  8. class JsI18nUrlTests(TestCase):
  9. def test_url_cache_buster(self):
  10. """js i18n catalog link has cachebuster with lang code"""
  11. url = '{}?{}'.format(reverse('django-i18n'), settings.LANGUAGE_CODE)
  12. response = self.client.get(reverse('misago:index'))
  13. self.assertContains(response, url)
  14. def test_js_catalogs_are_correct(self):
  15. """no JS catalogs have showstoppers"""
  16. failed_languages = []
  17. for language in os.listdir(LOCALES_DIR):
  18. if '.' in language:
  19. continue
  20. try:
  21. with translation.override(language):
  22. response = self.client.get(reverse('django-i18n'))
  23. if response.status_code != 200:
  24. failed_languages.append(language)
  25. except:
  26. failed_languages.append(language)
  27. if failed_languages:
  28. self.fail("JS catalog failed for languages: {}".format(', '.join(failed_languages)))