diff --git a/pyramid/tests/test_config/test_i18n.py b/pyramid/tests/test_config/test_i18n.py new file mode 100644 index 0000000000..3fdbf76e34 --- /dev/null +++ b/pyramid/tests/test_config/test_i18n.py @@ -0,0 +1,114 @@ +import os +import unittest + +from pyramid.tests.test_config import dummyfactory + +here = os.path.dirname(__file__) +locale = os.path.abspath( + os.path.join(here, '..', 'localeapp', 'locale')) +locale2 = os.path.abspath( + os.path.join(here, '..', 'localeapp', 'locale2')) +locale3 = os.path.abspath( + os.path.join(here, '..', '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() + self.assertRaises(ConfigurationError, + config.add_translation_dirs, + '/wont/exist/on/my/system') + + def test_add_translation_dirs_no_specs(self): + from pyramid.interfaces import ITranslationDirectories + from pyramid.interfaces import IChameleonTranslate + config = self._makeOne() + config.add_translation_dirs() + self.assertEqual(config.registry.queryUtility(ITranslationDirectories), + None) + self.assertEqual(config.registry.queryUtility(IChameleonTranslate), + 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.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.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.localeapp:locale', + 'pyramid.tests.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.localeapp:locale', + 'pyramid.tests.localeapp:locale2') + config.add_translation_dirs('pyramid.tests.localeapp:locale3') + self.assertEqual(config.registry.getUtility(ITranslationDirectories), + [locale3, locale, locale2]) + + def test_add_translation_dirs_registers_chameleon_translate(self): + from pyramid.interfaces import IChameleonTranslate + from pyramid.threadlocal import manager + request = DummyRequest() + config = self._makeOne(autocommit=True) + manager.push({'request':request, 'registry':config.registry}) + try: + config.add_translation_dirs('pyramid.tests.localeapp:locale') + translate = config.registry.getUtility(IChameleonTranslate) + self.assertEqual(translate('Approve'), u'Approve') + finally: + manager.pop() + + 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]) + +class DummyRequest: + subpath = () + matchdict = None + def __init__(self, environ=None): + if environ is None: + environ = {} + self.environ = environ + self.params = {} + self.cookies = {} diff --git a/pyramid/tests/test_config/test_init.py b/pyramid/tests/test_config/test_init.py index 7098e95111..154f249988 100644 --- a/pyramid/tests/test_config/test_init.py +++ b/pyramid/tests/test_config/test_init.py @@ -4,14 +4,6 @@ import os -here = os.path.dirname(__file__) -locale = os.path.abspath( - os.path.join(here, '..', 'localeapp', 'locale')) -locale2 = os.path.abspath( - os.path.join(here, '..', 'localeapp', 'locale2')) -locale3 = os.path.abspath( - os.path.join(here, '..', 'localeapp', 'locale3')) - from pyramid.tests.test_config import dummy_tween_factory from pyramid.tests.test_config import dummyfactory from pyramid.tests.test_config import dummy_include @@ -812,92 +804,6 @@ def test_set_default_permission(self): self.assertEqual(config.registry.getUtility(IDefaultPermission), 'view') - 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() - self.assertRaises(ConfigurationError, - config.add_translation_dirs, - '/wont/exist/on/my/system') - - def test_add_translation_dirs_no_specs(self): - from pyramid.interfaces import ITranslationDirectories - from pyramid.interfaces import IChameleonTranslate - config = self._makeOne() - config.add_translation_dirs() - self.assertEqual(config.registry.queryUtility(ITranslationDirectories), - None) - self.assertEqual(config.registry.queryUtility(IChameleonTranslate), - 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.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.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.localeapp:locale', - 'pyramid.tests.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.localeapp:locale', - 'pyramid.tests.localeapp:locale2') - config.add_translation_dirs('pyramid.tests.localeapp:locale3') - self.assertEqual(config.registry.getUtility(ITranslationDirectories), - [locale3, locale, locale2]) - - def test_add_translation_dirs_registers_chameleon_translate(self): - from pyramid.interfaces import IChameleonTranslate - from pyramid.threadlocal import manager - request = DummyRequest() - config = self._makeOne(autocommit=True) - manager.push({'request':request, 'registry':config.registry}) - try: - config.add_translation_dirs('pyramid.tests.localeapp:locale') - translate = config.registry.getUtility(IChameleonTranslate) - self.assertEqual(translate('Approve'), u'Approve') - finally: - manager.pop() - - 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_renderer(self): from pyramid.interfaces import IRendererFactory config = self._makeOne(autocommit=True) @@ -1559,7 +1465,6 @@ def test_global_registries(self): global_registries.remove(config2.registry) self.assertEqual(global_registries.last, config1.registry) - class DummyRequest: subpath = () matchdict = None