summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_i18n/fixture.py24
-rw-r--r--oslo_i18n/tests/test_fixture.py40
2 files changed, 62 insertions, 2 deletions
diff --git a/oslo_i18n/fixture.py b/oslo_i18n/fixture.py
index 076c708..e62fc8c 100644
--- a/oslo_i18n/fixture.py
+++ b/oslo_i18n/fixture.py
@@ -16,6 +16,7 @@
import fixtures
import six
+from oslo_i18n import _lazy
from oslo_i18n import _message
@@ -63,3 +64,26 @@ class Translation(fixtures.Fixture):
"""
return six.text_type(msg)
+
+
+class ToggleLazy(fixtures.Fixture):
+ """Fixture to toggle lazy translation on or off for a test."""
+
+ def __init__(self, enabled):
+ """Force lazy translation on or off.
+
+ :param enabled: Flag controlling whether to enable or disable
+ lazy translation, passed to :func:`~oslo_i18n.enable_lazy`.
+ :type enabled: bool
+ """
+ super(ToggleLazy, self).__init__()
+ self._enabled = enabled
+ self._original_value = _lazy.USE_LAZY
+
+ def setUp(self):
+ super(ToggleLazy, self).setUp()
+ self.addCleanup(self._restore_original)
+ _lazy.enable_lazy(self._enabled)
+
+ def _restore_original(self):
+ _lazy.enable_lazy(self._original_value)
diff --git a/oslo_i18n/tests/test_fixture.py b/oslo_i18n/tests/test_fixture.py
index aca994f..b5e7f53 100644
--- a/oslo_i18n/tests/test_fixture.py
+++ b/oslo_i18n/tests/test_fixture.py
@@ -15,14 +15,15 @@
from oslotest import base as test_base
import six
+from oslo_i18n import _lazy
from oslo_i18n import _message
from oslo_i18n import fixture
-class FixtureTest(test_base.BaseTestCase):
+class TranslationFixtureTest(test_base.BaseTestCase):
def setUp(self):
- super(FixtureTest, self).setUp()
+ super(TranslationFixtureTest, self).setUp()
self.trans_fixture = self.useFixture(fixture.Translation())
def test_lazy(self):
@@ -36,3 +37,38 @@ class FixtureTest(test_base.BaseTestCase):
self.assertFalse(isinstance(msg, _message.Message))
self.assertIsInstance(msg, six.text_type)
self.assertEqual(msg, u'this is a lazy message')
+
+
+class ToggleLazyFixtureText(test_base.BaseTestCase):
+
+ def test_on_on(self):
+ _lazy.USE_LAZY = True
+ f = fixture.ToggleLazy(True)
+ f.setUp()
+ self.assertTrue(_lazy.USE_LAZY)
+ f._restore_original()
+ self.assertTrue(_lazy.USE_LAZY)
+
+ def test_on_off(self):
+ _lazy.USE_LAZY = True
+ f = fixture.ToggleLazy(False)
+ f.setUp()
+ self.assertFalse(_lazy.USE_LAZY)
+ f._restore_original()
+ self.assertTrue(_lazy.USE_LAZY)
+
+ def test_off_on(self):
+ _lazy.USE_LAZY = False
+ f = fixture.ToggleLazy(True)
+ f.setUp()
+ self.assertTrue(_lazy.USE_LAZY)
+ f._restore_original()
+ self.assertFalse(_lazy.USE_LAZY)
+
+ def test_off_off(self):
+ _lazy.USE_LAZY = False
+ f = fixture.ToggleLazy(False)
+ f.setUp()
+ self.assertFalse(_lazy.USE_LAZY)
+ f._restore_original()
+ self.assertFalse(_lazy.USE_LAZY)