Added tests for compliance with settings.LANGUAGES

This commit is contained in:
Kris 2011-09-18 12:05:39 +01:00
parent 4d8b3bf7c4
commit 46745a731f
1 changed files with 82 additions and 0 deletions

View File

@ -4,6 +4,7 @@ from django.conf import settings
from django.contrib.auth.models import User
from django.template import Template, Context
from simple_translation.test.testcases import SimpleTranslationBaseTestCase
from simple_translation.translation_pool import TranslationPool
class SimpleTranslationTestCase(SimpleTranslationBaseTestCase):
@ -212,3 +213,84 @@ class SimpleTranslationTestCase(SimpleTranslationBaseTestCase):
{% endwith %}
''')
self.assertEquals(tpl_lang.render(ctxt).strip(), 'german')
def test_09_test_respect_settings_languages(self):
settings.LANGUAGES = (
('en', 'English'),
('pl', 'Polish'),
)
published_at = datetime.datetime.now() - datetime.timedelta(hours=-1)
en_title, entry = self.create_entry_with_title(title='english', published_at=published_at)
de_title = self.create_entry_title(entry, title='german', language='de', published_at=published_at)
pl_title = self.create_entry_title(entry, title='polish', language='pl', published_at=published_at)
pool = TranslationPool()
pool.annotate_with_translations(entry)
translated_languages = [t.language for t in entry.translations]
self.assertIn('pl', translated_languages)
self.assertIn('en', translated_languages)
self.assertNotIn('de', translated_languages)
def test_10_test_respect_settings_languages_order(self):
settings.LANGUAGES = (
('pl', 'Polish'),
('en', 'English'),
('de', 'German')
)
published_at = datetime.datetime.now() - datetime.timedelta(hours=-1)
en_title, entry = self.create_entry_with_title(title='english', published_at=published_at)
de_title = self.create_entry_title(entry, title='german', language='de', published_at=published_at)
pl_title = self.create_entry_title(entry, title='polish', language='pl', published_at=published_at)
pool = TranslationPool()
pool.annotate_with_translations(entry)
translated_languages = [t.language for t in entry.translations]
settings_languages = [lang_code for lang_code, language in settings.LANGUAGES]
self.assertSequenceEqual(translated_languages, settings_languages)
def test_11_test_respect_settings_languages_list(self):
settings.LANGUAGES = (
('en', 'English'),
('pl', 'Polish'),
)
entries = []
for title in ('title1', 'title2'):
published_at = datetime.datetime.now() - datetime.timedelta(hours=-1)
en_title, entry = self.create_entry_with_title(title='english' + title, published_at=published_at)
de_title = self.create_entry_title(entry, title='german' + title, language='de', published_at=published_at)
pl_title = self.create_entry_title(entry, title='polish' + title, language='pl', published_at=published_at)
entries.append(entry)
pool = TranslationPool()
pool.annotate_with_translations(entries)
for entry in entries:
translated_languages = [t.language for t in entry.translations]
self.assertIn('pl', translated_languages)
self.assertIn('en', translated_languages)
self.assertNotIn('de', translated_languages)
def test_12_test_respect_settings_languages_order_list(self):
settings.LANGUAGES = (
('pl', 'Polish'),
('en', 'English'),
('de', 'German')
)
entries = []
for title in ('title1', 'title2'):
published_at = datetime.datetime.now() - datetime.timedelta(hours=-1)
en_title, entry = self.create_entry_with_title(title='english'+title, published_at=published_at)
de_title = self.create_entry_title(entry, title='german'+title, language='de', published_at=published_at)
pl_title = self.create_entry_title(entry, title='polish'+title, language='pl', published_at=published_at)
entries.append(entry)
pool = TranslationPool()
pool.annotate_with_translations(entries)
settings_languages = [lang_code for lang_code, language in settings.LANGUAGES]
for entry in entries:
translated_languages = [t.language for t in entry.translations]
self.assertSequenceEqual(translated_languages, settings_languages)