summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-04-27 16:44:52 +0000
committerChris McDonough <chrism@agendaless.com>2010-04-27 16:44:52 +0000
commit12cb6df7728c8321905a08b0864b3ff0386c62cf (patch)
tree945e3cbf094775c57f0a6b94f36e78885cbd4a53 /repoze/bfg/tests
parent4c8f4d965e06b6bd584151896bfb37663cd69501 (diff)
downloadpyramid-12cb6df7728c8321905a08b0864b3ff0386c62cf.tar.gz
pyramid-12cb6df7728c8321905a08b0864b3ff0386c62cf.tar.bz2
pyramid-12cb6df7728c8321905a08b0864b3ff0386c62cf.zip
Features
-------- - A locale negotiator no longer needs to be registered explicitly. The default locale negotiator at ``repoze.bfg.i18n.default_locale_negotiator`` is now used unconditionally as... um, the default locale negotiator. - The default locale negotiator has become more complex. * First, the negotiator looks for the ``_LOCALE_`` attribute of the request object (possibly set by an :term:`event listener`). * Then it looks for the ``request.params['_LOCALE_']`` value. * Then it looks for the ``request.cookies['_LOCALE_']`` value. Backwards Incompatibilities --------------------------- - The default locale negotiator now looks for the parameter named ``_LOCALE_`` rather than a parameter named ``locale`` in ``request.params``. Behavior Changes ---------------- - A locale negotiator may now return ``None``, signifying that the default locale should be used. Documentation ------------- - Documentation concerning locale negotiation in the Internationalizationa and Localization chapter was updated.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_configuration.py2
-rw-r--r--repoze/bfg/tests/test_i18n.py36
2 files changed, 26 insertions, 12 deletions
diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py
index 0a443720f..16b590cdd 100644
--- a/repoze/bfg/tests/test_configuration.py
+++ b/repoze/bfg/tests/test_configuration.py
@@ -3518,6 +3518,8 @@ class DummyRequest:
subpath = ()
def __init__(self):
self.environ = {'PATH_INFO':'/static'}
+ self.params = {}
+ self.cookies = {}
def copy(self):
return self
def get_response(self, app):
diff --git a/repoze/bfg/tests/test_i18n.py b/repoze/bfg/tests/test_i18n.py
index fb79a802c..95017807f 100644
--- a/repoze/bfg/tests/test_i18n.py
+++ b/repoze/bfg/tests/test_i18n.py
@@ -94,6 +94,15 @@ class Test_negotiate_locale_name(unittest.TestCase):
result = self._callFUT(request)
self.assertEqual(result, 'settings')
+ def test_use_default_locale_negotiator(self):
+ from repoze.bfg.threadlocal import get_current_registry
+ registry = get_current_registry()
+ request = DummyRequest()
+ request.registry = registry
+ request._LOCALE_ = 'locale'
+ result = self._callFUT(request)
+ self.assertEqual(result, 'locale')
+
def test_default_default(self):
request = DummyRequest()
result = self._callFUT(request)
@@ -219,24 +228,26 @@ class Test_default_locale_negotiator(unittest.TestCase):
from repoze.bfg.i18n import default_locale_negotiator
return default_locale_negotiator(request)
- def test_from_settings(self):
- from repoze.bfg.interfaces import ISettings
- from repoze.bfg.threadlocal import get_current_registry
- settings = {'default_locale_name':'dude'}
- registry = get_current_registry()
- registry.registerUtility(settings, ISettings)
+ def test_from_none(self):
request = DummyRequest()
result = self._callFUT(request)
- self.assertEqual(result, 'dude')
-
- def test_settings_empty(self):
+ self.assertEqual(result, None)
+
+ def test_from_request_attr(self):
request = DummyRequest()
+ request._LOCALE_ = 'foo'
result = self._callFUT(request)
- self.assertEqual(result, 'en')
-
+ self.assertEqual(result, 'foo')
+
def test_from_params(self):
request = DummyRequest()
- request.params['locale'] = 'foo'
+ request.params['_LOCALE_'] = 'foo'
+ result = self._callFUT(request)
+ self.assertEqual(result, 'foo')
+
+ def test_from_cookies(self):
+ request = DummyRequest()
+ request.cookies['_LOCALE_'] = 'foo'
result = self._callFUT(request)
self.assertEqual(result, 'foo')
@@ -370,6 +381,7 @@ class TestTranslations(unittest.TestCase):
class DummyRequest(object):
def __init__(self):
self.params = {}
+ self.cookies = {}
def dummy_negotiator(request):
return 'bogus'