def test_locale_aliases(self): # Verify case insensitivty for locale aliases. pod = testing.create_test_pod() locale = locales.Locale('de') locale.set_alias(pod) self.assertEqual('de_alias', locale.alias) locale = locales.Locale('DE') locale.set_alias(pod) self.assertEqual('de_alias', locale.alias)
def test_multi_file_localization(self): fr_doc = self.pod.get_doc('/content/pages/intro.md', locale='fr') self.assertEqual(locales.Locale('fr'), fr_doc.locale) self.assertEqual('/content/pages/[email protected]', fr_doc.pod_path) self.assertEqual('/content/pages/intro.md', fr_doc.root_pod_path) self.assertIn('French About page.', fr_doc.html) de_doc = self.pod.get_doc('/content/pages/intro.md', locale='de') de_doc_from_fr_doc = fr_doc.localize('de') self.assertEqual(de_doc, de_doc_from_fr_doc) self.assertEqual('root_value', de_doc.key) self.assertEqual('fr_value', fr_doc.key) self.assertEqual('root_key_value', de_doc.root_key) self.assertEqual('root_key_value', fr_doc.root_key) keys = ['$title', '$order', '$titles', 'key', 'root_key'] self.assertItemsEqual(keys, fr_doc.fields.keys())
def test_locales(self): doc = self.pod.get_doc('/content/pages/contact.yaml') self.assertEqual(locales.Locale('de'), doc.locale) expected = locales.Locale.parse_codes([ 'de', 'fr', 'it', ]) self.assertEqual(expected, doc.locales) # Currently, when requesting a document with a locale that is not # specified, we return a path that is unmatchable. TBD whether we want # to change this in a future version. ko_doc = self.pod.get_doc('/content/pages/contact.yaml', locale='ko') expected = '/ko/contact-us/' self.assertEqual(expected, ko_doc.url.path) self.assertTrue(ko_doc.exists)
def test_default_locale(self): doc = self.pod.get_doc('/content/localized/localized.yaml', locale='de') self.assertEqual('/views/ja-specific-view.html', doc.view) self.assertEqual(locales.Locale('de'), doc.locale) self.assertEqual('base_ja', doc.foo) self.assertEqual('baz', doc.bar) doc = self.pod.get_doc('/content/localized/localized.yaml') self.assertEqual('/views/ja-specific-view.html', doc.view) self.assertEqual(locales.Locale('ja'), doc.locale) self.assertEqual(locales.Locale('ja'), doc.default_locale) self.assertEqual('base_ja', doc.foo) self.assertEqual('baz', doc.bar) doc = self.pod.get_doc('/content/localized/localized.yaml', locale='ja') self.assertEqual('/views/ja-specific-view.html', doc.view) self.assertEqual(locales.Locale('ja'), doc.locale) self.assertEqual('base_ja', doc.foo) self.assertEqual('baz', doc.bar) doc = self.pod.get_doc('/content/localized/localized.yaml', locale='fr') self.assertEqual('/views/ja-specific-view.html', doc.view) self.assertEqual(locales.Locale('fr'), doc.locale) self.assertEqual('base_ja', doc.foo) self.assertEqual('baz', doc.bar) self.assertEqual('/intl/fr/localized/', doc.url.path) doc = self.pod.get_doc('/content/localized/localized.yaml', locale='en') self.assertEqual('/views/localized.html', doc.view) self.assertEqual(locales.Locale('en'), doc.locale) self.assertEqual('base', doc.foo) self.assertEqual('baz', doc.bar) self.assertEqual('/intl/en/localized/', doc.url.path)
def test_eq(self): locale = locales.Locale('en_US') self.assertEqual(locale, 'en_US') self.assertEqual(locale, 'en_us') self.assertEqual(locale, locales.Locale('en_US')) self.assertEqual(locale, locales.Locale('en_us'))
def get_doc(self, path, locale=None): if isinstance(locale, basestring): locale = locales.Locale(locale) return self._paths_to_locales_to_docs.get(path, {}).get(locale)