diff options
author | Doug Hellmann <doug@doughellmann.com> | 2014-10-09 15:30:41 -0400 |
---|---|---|
committer | Doug Hellmann <doug@doughellmann.com> | 2014-12-18 16:35:03 -0500 |
commit | ba05e9a9b919e844121164fd23c560056da8a7bb (patch) | |
tree | 8c3d5545161823d1883d292eff7233145092aee4 /oslo_i18n/fixture.py | |
parent | 53635eae0f7db09fb9618dd71ed632e83a6ac8b6 (diff) | |
download | oslo-i18n-ba05e9a9b919e844121164fd23c560056da8a7bb.tar.gz |
Move out of the oslo namespace package
Move the public API out of oslo.i18n to oslo_i18n. Retain the ability to
import from the old namespace package for backwards compatibility for
this release cycle.
bp/drop-namespace-packages
Change-Id: I800f121c271d8e69f6e776c4aef509bbb8008170
Diffstat (limited to 'oslo_i18n/fixture.py')
-rw-r--r-- | oslo_i18n/fixture.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/oslo_i18n/fixture.py b/oslo_i18n/fixture.py new file mode 100644 index 0000000..076c708 --- /dev/null +++ b/oslo_i18n/fixture.py @@ -0,0 +1,65 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +"""Test fixtures for working with oslo_i18n. + +""" + +import fixtures +import six + +from oslo_i18n import _message + + +class Translation(fixtures.Fixture): + """Fixture for managing translatable strings. + + This class provides methods for creating translatable strings + using both lazy translation and immediate translation. It can be + used to generate the different types of messages returned from + oslo_i18n to test code that may need to know about the type to + handle them differently (for example, error handling in WSGI apps, + or logging). + + Use this class to generate messages instead of toggling the global + lazy flag and using the regular translation factory. + + """ + + def __init__(self, domain='test-domain'): + """Initialize the fixture. + + :param domain: The translation domain. This is not expected to + coincide with an actual set of message + catalogs, but it can. + :type domain: str + """ + self.domain = domain + + def lazy(self, msg): + """Return a lazily translated message. + + :param msg: Input message string. May optionally include + positional or named string interpolation markers. + :type msg: str or unicode + + """ + return _message.Message(msg, domain=self.domain) + + def immediate(self, msg): + """Return a string as though it had been translated immediately. + + :param msg: Input message string. May optionally include + positional or named string interpolation markers. + :type msg: str or unicode + + """ + return six.text_type(msg) |