summaryrefslogtreecommitdiff
path: root/lib/testtools/testtools/tests/test_compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/testtools/testtools/tests/test_compat.py')
-rw-r--r--lib/testtools/testtools/tests/test_compat.py20
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"""