diff options
Diffstat (limited to 'lib/testtools/testtools/tests/test_compat.py')
-rw-r--r-- | lib/testtools/testtools/tests/test_compat.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/testtools/testtools/tests/test_compat.py b/lib/testtools/testtools/tests/test_compat.py index 856953896a..a33c071aaa 100644 --- a/lib/testtools/testtools/tests/test_compat.py +++ b/lib/testtools/testtools/tests/test_compat.py @@ -15,6 +15,7 @@ from testtools.compat import ( _detect_encoding, _get_source_encoding, _u, + str_is_unicode, unicode_output_stream, ) from testtools.matchers import ( @@ -225,14 +226,23 @@ class TestUnicodeOutputStream(testtools.TestCase): unicode_output_stream(sout).write(self.uni) self.assertEqual([_b("pa?\xe8?n")], sout.writelog) - def test_unicode_encodings_not_wrapped(self): - """A unicode encoding is left unwrapped as needs no error handler""" + @testtools.skipIf(str_is_unicode, "Tests behaviour when str is not unicode") + def test_unicode_encodings_wrapped_when_str_is_not_unicode(self): + """A unicode encoding is wrapped but needs no error handler""" sout = _FakeOutputStream() sout.encoding = "utf-8" - self.assertIs(unicode_output_stream(sout), sout) + uout = unicode_output_stream(sout) + self.assertEqual(uout.errors, "strict") + uout.write(self.uni) + self.assertEqual([_b("pa\xc9\xaa\xce\xb8\xc9\x99n")], sout.writelog) + + @testtools.skipIf(not str_is_unicode, "Tests behaviour when str is unicode") + def test_unicode_encodings_not_wrapped_when_str_is_unicode(self): + # No wrapping needed if native str type is unicode sout = _FakeOutputStream() - sout.encoding = "utf-16-be" - self.assertIs(unicode_output_stream(sout), sout) + sout.encoding = "utf-8" + uout = unicode_output_stream(sout) + self.assertIs(uout, sout) def test_stringio(self): """A StringIO object should maybe get an ascii native str type""" |