diff options
| author | Petr Viktorin <pviktori@redhat.com> | 2015-09-18 15:28:53 +0200 |
|---|---|---|
| committer | Jan Cholasta <jcholast@redhat.com> | 2015-10-07 10:27:20 +0200 |
| commit | 60d626845d9ed1b59bff25bb29c8c1ae283e1e98 (patch) | |
| tree | 84a385b226780a59b9440faa6eed5097229fe07f /ipatests/test_ipapython | |
| parent | ed96f8d9ba399d2c6909806692321d638b11ba8b (diff) | |
| download | freeipa-60d626845d9ed1b59bff25bb29c8c1ae283e1e98.tar.gz freeipa-60d626845d9ed1b59bff25bb29c8c1ae283e1e98.tar.xz freeipa-60d626845d9ed1b59bff25bb29c8c1ae283e1e98.zip | |
test_dn: Split bytes and unicode
Reviewed-By: David Kupka <dkupka@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'ipatests/test_ipapython')
| -rw-r--r-- | ipatests/test_ipapython/test_dn.py | 109 |
1 files changed, 67 insertions, 42 deletions
diff --git a/ipatests/test_ipapython/test_dn.py b/ipatests/test_ipapython/test_dn.py index 0c5a37db5..fe498cc3d 100644 --- a/ipatests/test_ipapython/test_dn.py +++ b/ipatests/test_ipapython/test_dn.py @@ -1,5 +1,4 @@ -#!/usr/bin/python2 - +import contextlib import unittest import six @@ -1182,12 +1181,26 @@ class TestEscapes(unittest.TestCase): class TestInternationalization(unittest.TestCase): def setUp(self): # Hello in Arabic - self.arabic_hello_utf8 = '\xd9\x85\xd9\x83\xd9\x8a\xd9\x84' + \ - '\xd8\xb9\x20\xd9\x85\xd8\xa7\xd9' + \ - '\x84\xd9\x91\xd8\xb3\xd9\x84\xd8\xa7' + self.arabic_hello_utf8 = (b'\xd9\x85\xd9\x83\xd9\x8a\xd9\x84' + + b'\xd8\xb9\x20\xd9\x85\xd8\xa7\xd9' + + b'\x84\xd9\x91\xd8\xb3\xd9\x84\xd8\xa7') self.arabic_hello_unicode = self.arabic_hello_utf8.decode('utf-8') + def assert_equal_utf8(self, obj, b): + if six.PY2: + self.assertEqual(str(obj), b) + else: + self.assertEqual(str(obj), b.decode('utf-8')) + + @contextlib.contextmanager + def fail_py3(self, exception_type): + try: + yield + except exception_type: + if six.PY2: + raise + def test_i18n(self): self.assertEqual(self.arabic_hello_utf8, self.arabic_hello_unicode.encode('utf-8')) @@ -1198,26 +1211,30 @@ class TestInternationalization(unittest.TestCase): self.assertIsInstance(ava1.attr, unicode) self.assertIsInstance(ava1.value, unicode) self.assertEqual(ava1.attr, self.arabic_hello_unicode) - self.assertEqual(str(ava1), self.arabic_hello_utf8+'=foo') + self.assert_equal_utf8(ava1, self.arabic_hello_utf8 + b'=foo') - ava1 = AVA(self.arabic_hello_utf8, 'foo') - self.assertIsInstance(ava1.attr, unicode) - self.assertIsInstance(ava1.value, unicode) - self.assertEqual(ava1.attr, self.arabic_hello_unicode) - self.assertEqual(str(ava1), self.arabic_hello_utf8+'=foo') + with self.fail_py3(TypeError): + ava1 = AVA(self.arabic_hello_utf8, 'foo') + if six.PY2: + self.assertIsInstance(ava1.attr, unicode) + self.assertIsInstance(ava1.value, unicode) + self.assertEqual(ava1.attr, self.arabic_hello_unicode) + self.assert_equal_utf8(ava1, self.arabic_hello_utf8 + b'=foo') # test value i18n ava1 = AVA('cn', self.arabic_hello_unicode) self.assertIsInstance(ava1.attr, unicode) self.assertIsInstance(ava1.value, unicode) self.assertEqual(ava1.value, self.arabic_hello_unicode) - self.assertEqual(str(ava1), 'cn='+self.arabic_hello_utf8) + self.assert_equal_utf8(ava1, b'cn=' + self.arabic_hello_utf8) - ava1 = AVA('cn', self.arabic_hello_utf8) - self.assertIsInstance(ava1.attr, unicode) - self.assertIsInstance(ava1.value, unicode) - self.assertEqual(ava1.value, self.arabic_hello_unicode) - self.assertEqual(str(ava1), 'cn='+self.arabic_hello_utf8) + with self.fail_py3(TypeError): + ava1 = AVA('cn', self.arabic_hello_utf8) + if six.PY2: + self.assertIsInstance(ava1.attr, unicode) + self.assertIsInstance(ava1.value, unicode) + self.assertEqual(ava1.value, self.arabic_hello_unicode) + self.assert_equal_utf8(ava1, b'cn=' + self.arabic_hello_utf8) # RDN's # test attr i18n @@ -1225,26 +1242,30 @@ class TestInternationalization(unittest.TestCase): self.assertIsInstance(rdn1.attr, unicode) self.assertIsInstance(rdn1.value, unicode) self.assertEqual(rdn1.attr, self.arabic_hello_unicode) - self.assertEqual(str(rdn1), self.arabic_hello_utf8+'=foo') + self.assert_equal_utf8(rdn1, self.arabic_hello_utf8 + b'=foo') - rdn1 = RDN((self.arabic_hello_utf8, 'foo')) - self.assertIsInstance(rdn1.attr, unicode) - self.assertIsInstance(rdn1.value, unicode) - self.assertEqual(rdn1.attr, self.arabic_hello_unicode) - self.assertEqual(str(rdn1), self.arabic_hello_utf8+'=foo') + with self.fail_py3(TypeError): + rdn1 = RDN((self.arabic_hello_utf8, 'foo')) + if six.PY2: + self.assertIsInstance(rdn1.attr, unicode) + self.assertIsInstance(rdn1.value, unicode) + self.assertEqual(rdn1.attr, self.arabic_hello_unicode) + self.assertEqual(str(rdn1), self.arabic_hello_utf8 + b'=foo') # test value i18n rdn1 = RDN(('cn', self.arabic_hello_unicode)) self.assertIsInstance(rdn1.attr, unicode) self.assertIsInstance(rdn1.value, unicode) self.assertEqual(rdn1.value, self.arabic_hello_unicode) - self.assertEqual(str(rdn1), 'cn='+self.arabic_hello_utf8) + self.assert_equal_utf8(rdn1, b'cn=' + self.arabic_hello_utf8) - rdn1 = RDN(('cn', self.arabic_hello_utf8)) - self.assertIsInstance(rdn1.attr, unicode) - self.assertIsInstance(rdn1.value, unicode) - self.assertEqual(rdn1.value, self.arabic_hello_unicode) - self.assertEqual(str(rdn1), 'cn='+self.arabic_hello_utf8) + with self.fail_py3(TypeError): + rdn1 = RDN(('cn', self.arabic_hello_utf8)) + if six.PY2: + self.assertIsInstance(rdn1.attr, unicode) + self.assertIsInstance(rdn1.value, unicode) + self.assertEqual(rdn1.value, self.arabic_hello_unicode) + self.assertEqual(str(rdn1), b'cn=' + self.arabic_hello_utf8) # DN's # test attr i18n @@ -1252,26 +1273,30 @@ class TestInternationalization(unittest.TestCase): self.assertIsInstance(dn1[0].attr, unicode) self.assertIsInstance(dn1[0].value, unicode) self.assertEqual(dn1[0].attr, self.arabic_hello_unicode) - self.assertEqual(str(dn1), self.arabic_hello_utf8+'=foo') + self.assert_equal_utf8(dn1, self.arabic_hello_utf8 + b'=foo') - dn1 = DN((self.arabic_hello_utf8, 'foo')) - self.assertIsInstance(dn1[0].attr, unicode) - self.assertIsInstance(dn1[0].value, unicode) - self.assertEqual(dn1[0].attr, self.arabic_hello_unicode) - self.assertEqual(str(dn1), self.arabic_hello_utf8+'=foo') + with self.fail_py3(TypeError): + dn1 = DN((self.arabic_hello_utf8, 'foo')) + if six.PY2: + self.assertIsInstance(dn1[0].attr, unicode) + self.assertIsInstance(dn1[0].value, unicode) + self.assertEqual(dn1[0].attr, self.arabic_hello_unicode) + self.assertEqual(str(dn1), self.arabic_hello_utf8 + b'=foo') # test value i18n dn1 = DN(('cn', self.arabic_hello_unicode)) self.assertIsInstance(dn1[0].attr, unicode) self.assertIsInstance(dn1[0].value, unicode) self.assertEqual(dn1[0].value, self.arabic_hello_unicode) - self.assertEqual(str(dn1), 'cn='+self.arabic_hello_utf8) - - dn1 = DN(('cn', self.arabic_hello_utf8)) - self.assertIsInstance(dn1[0].attr, unicode) - self.assertIsInstance(dn1[0].value, unicode) - self.assertEqual(dn1[0].value, self.arabic_hello_unicode) - self.assertEqual(str(dn1), 'cn='+self.arabic_hello_utf8) + self.assert_equal_utf8(dn1, b'cn=' + self.arabic_hello_utf8) + + with self.fail_py3(TypeError): + dn1 = DN(('cn', self.arabic_hello_utf8)) + if six.PY2: + self.assertIsInstance(dn1[0].attr, unicode) + self.assertIsInstance(dn1[0].value, unicode) + self.assertEqual(dn1[0].value, self.arabic_hello_unicode) + self.assertEqual(str(dn1), b'cn=' + self.arabic_hello_utf8) if __name__ == '__main__': |
