summaryrefslogtreecommitdiff
path: root/tests/test_config/test_i18n.py
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2018-10-14 21:11:41 -0500
committerMichael Merickel <michael@merickel.org>2018-10-14 21:11:41 -0500
commit3670c2cdb732d378ba6d38e72e7cd875ff726aa9 (patch)
tree5213452a778c992d42602efe7d3b3655a349abd5 /tests/test_config/test_i18n.py
parent2b024920847481592b1a13d4006d2a9fa8881d72 (diff)
downloadpyramid-3670c2cdb732d378ba6d38e72e7cd875ff726aa9.tar.gz
pyramid-3670c2cdb732d378ba6d38e72e7cd875ff726aa9.tar.bz2
pyramid-3670c2cdb732d378ba6d38e72e7cd875ff726aa9.zip
move tests out of the package
Diffstat (limited to 'tests/test_config/test_i18n.py')
-rw-r--r--tests/test_config/test_i18n.py132
1 files changed, 132 insertions, 0 deletions
diff --git a/tests/test_config/test_i18n.py b/tests/test_config/test_i18n.py
new file mode 100644
index 000000000..c10ab6bdb
--- /dev/null
+++ b/tests/test_config/test_i18n.py
@@ -0,0 +1,132 @@
+import os
+import unittest
+
+from pyramid.tests.test_config import dummyfactory
+
+here = os.path.dirname(__file__)
+locale = os.path.abspath(
+ os.path.join(here, '..', 'pkgs', 'localeapp', 'locale'))
+locale2 = os.path.abspath(
+ os.path.join(here, '..', 'pkgs', 'localeapp', 'locale2'))
+locale3 = os.path.abspath(
+ os.path.join(here, '..', 'pkgs', 'localeapp', 'locale3'))
+
+class TestI18NConfiguratorMixin(unittest.TestCase):
+ def _makeOne(self, *arg, **kw):
+ from pyramid.config import Configurator
+ config = Configurator(*arg, **kw)
+ return config
+
+ def test_set_locale_negotiator(self):
+ from pyramid.interfaces import ILocaleNegotiator
+ config = self._makeOne(autocommit=True)
+ def negotiator(request): pass
+ config.set_locale_negotiator(negotiator)
+ self.assertEqual(config.registry.getUtility(ILocaleNegotiator),
+ negotiator)
+
+ def test_set_locale_negotiator_dottedname(self):
+ from pyramid.interfaces import ILocaleNegotiator
+ config = self._makeOne(autocommit=True)
+ config.set_locale_negotiator(
+ 'pyramid.tests.test_config.dummyfactory')
+ self.assertEqual(config.registry.getUtility(ILocaleNegotiator),
+ dummyfactory)
+
+ def test_add_translation_dirs_missing_dir(self):
+ from pyramid.exceptions import ConfigurationError
+ config = self._makeOne()
+ config.add_translation_dirs('/wont/exist/on/my/system')
+ self.assertRaises(ConfigurationError, config.commit)
+
+ def test_add_translation_dirs_no_specs(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne()
+ config.add_translation_dirs()
+ self.assertEqual(config.registry.queryUtility(ITranslationDirectories),
+ None)
+
+ def test_add_translation_dirs_asset_spec(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale])
+
+ def test_add_translation_dirs_asset_spec_existing_translation_dirs(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ directories = ['abc']
+ config.registry.registerUtility(directories, ITranslationDirectories)
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')
+ result = config.registry.getUtility(ITranslationDirectories)
+ self.assertEqual(result, [locale, 'abc'])
+
+ def test_add_translation_dirs_multiple_specs(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',
+ 'pyramid.tests.pkgs.localeapp:locale2')
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale, locale2])
+
+ def test_add_translation_dirs_multiple_specs_multiple_calls(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',
+ 'pyramid.tests.pkgs.localeapp:locale2')
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale3')
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale3, locale, locale2])
+
+ def test_add_translation_dirs_override_multiple_specs_multiple_calls(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',
+ 'pyramid.tests.pkgs.localeapp:locale2')
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale3',
+ override=True)
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale, locale2, locale3])
+
+ def test_add_translation_dirs_invalid_kwargs(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ with self.assertRaises(TypeError):
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',
+ foo=1)
+
+ def test_add_translation_dirs_abspath(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.add_translation_dirs(locale)
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale])
+
+ def test_add_translation_dirs_uses_override_out_of_order(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne()
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')
+ config.override_asset('pyramid.tests.pkgs.localeapp:locale/',
+ 'pyramid.tests.pkgs.localeapp:locale2/')
+ config.commit()
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale2])
+
+ def test_add_translation_dirs_doesnt_use_override_w_autocommit(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')
+ config.override_asset('pyramid.tests.pkgs.localeapp:locale/',
+ 'pyramid.tests.pkgs.localeapp:locale2/')
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale])
+
+ def test_add_translation_dirs_uses_override_w_autocommit(self):
+ from pyramid.interfaces import ITranslationDirectories
+ config = self._makeOne(autocommit=True)
+ config.override_asset('pyramid.tests.pkgs.localeapp:locale/',
+ 'pyramid.tests.pkgs.localeapp:locale2/')
+ config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')
+ self.assertEqual(config.registry.getUtility(ITranslationDirectories),
+ [locale2])