diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-09-16 03:18:44 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-16 03:18:44 -0700 |
commit | 724e9e28185d35398bbbd445eccfa7592c4f641b (patch) | |
tree | 3aba6242df1b4ad8dfa7ddf05f031042ec543ba2 /pym/portage/tests/unicode | |
parent | 50b39d4bbd4b0ca8d65f22793a044119a391f36f (diff) | |
download | portage-724e9e28185d35398bbbd445eccfa7592c4f641b.tar.gz portage-724e9e28185d35398bbbd445eccfa7592c4f641b.tar.bz2 portage-724e9e28185d35398bbbd445eccfa7592c4f641b.zip |
Make UseFlagDisplay __str__ and __unicode__ methods more like
DependencyArg, and add tests.
Diffstat (limited to 'pym/portage/tests/unicode')
-rw-r--r-- | pym/portage/tests/unicode/test_string_format.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/pym/portage/tests/unicode/test_string_format.py b/pym/portage/tests/unicode/test_string_format.py index d2eb81d9a..fb6e8e02e 100644 --- a/pym/portage/tests/unicode/test_string_format.py +++ b/pym/portage/tests/unicode/test_string_format.py @@ -7,6 +7,10 @@ from portage import _encodings, _unicode_decode from portage.exception import PortageException from portage.tests import TestCase from _emerge.DependencyArg import DependencyArg +from _emerge.UseFlagDisplay import UseFlagDisplay + +if sys.hexversion >= 0x3000000: + basestring = str STR_IS_UNICODE = sys.hexversion >= 0x3000000 @@ -75,3 +79,30 @@ class StringFormatTestCase(TestCase): # Test the __str__ method which returns encoded bytes in python2 formatted_bytes = "%s" % (e,) self.assertEqual(formatted_bytes, arg_bytes) + + def testUseFlagDisplay(self): + + self.assertEqual(_encodings['content'], 'utf_8') + + for enabled in (True, False): + for forced in (True, False): + for arg_bytes in self.unicode_strings: + arg_unicode = _unicode_decode(arg_bytes, encoding=_encodings['content']) + e = UseFlagDisplay(arg_unicode, enabled, forced) + + # Force unicode format string so that __unicode__() is + # called in python2. + formatted_str = _unicode_decode("%s") % (e,) + self.assertEqual(isinstance(formatted_str, basestring), True) + + if STR_IS_UNICODE: + + # Test the __str__ method which returns unicode in python3 + formatted_str = "%s" % (e,) + self.assertEqual(isinstance(formatted_str, str), True) + + else: + + # Test the __str__ method which returns encoded bytes in python2 + formatted_bytes = "%s" % (e,) + self.assertEqual(isinstance(formatted_bytes, bytes), True) |