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])
|