summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-02-19 16:44:12 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2014-02-19 16:44:12 (GMT)
commit162c477f41380d68d0e65e8b3921de86c6d0fbf7 (patch)
tree7adfef61a1b9b3594eda7a1fc2b7060bd04b4ea3 /Lib
parente95977621de92f99153d48d2c4dde9cbdff6e3a7 (diff)
downloadcpython-162c477f41380d68d0e65e8b3921de86c6d0fbf7.zip
cpython-162c477f41380d68d0e65e8b3921de86c6d0fbf7.tar.gz
cpython-162c477f41380d68d0e65e8b3921de86c6d0fbf7.tar.bz2
Issue #20672: Fixed tests for TarFile.list() on non-UTF-8 locales.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_tarfile.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index ad6f320..68fe608 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -238,14 +238,16 @@ class ListTest(ReadTest, unittest.TestCase):
self.assertIn(b'ustar/dirtype/', out)
self.assertIn(b'ustar/dirtype-with-size/', out)
# Make sure it is able to print unencodable characters
- self.assertIn(br'ustar/umlauts-'
- br'\udcc4\udcd6\udcdc\udce4\udcf6\udcfc\udcdf', out)
- self.assertIn(br'misc/regtype-hpux-signed-chksum-'
- br'\udcc4\udcd6\udcdc\udce4\udcf6\udcfc\udcdf', out)
- self.assertIn(br'misc/regtype-old-v7-signed-chksum-'
- br'\udcc4\udcd6\udcdc\udce4\udcf6\udcfc\udcdf', out)
- self.assertIn(br'pax/bad-pax-\udce4\udcf6\udcfc', out)
- self.assertIn(br'pax/hdrcharset-\udce4\udcf6\udcfc', out)
+ def conv(b):
+ s = b.decode(self.tar.encoding, 'surrogateescape')
+ return s.encode('ascii', 'backslashreplace')
+ self.assertIn(conv(b'ustar/umlauts-\xc4\xd6\xdc\xe4\xf6\xfc\xdf'), out)
+ self.assertIn(conv(b'misc/regtype-hpux-signed-chksum-'
+ b'\xc4\xd6\xdc\xe4\xf6\xfc\xdf'), out)
+ self.assertIn(conv(b'misc/regtype-old-v7-signed-chksum-'
+ b'\xc4\xd6\xdc\xe4\xf6\xfc\xdf'), out)
+ self.assertIn(conv(b'pax/bad-pax-\xe4\xf6\xfc'), out)
+ self.assertIn(conv(b'pax/hdrcharset-\xe4\xf6\xfc'), out)
# Make sure it prints files separated by one newline without any
# 'ls -l'-like accessories if verbose flag is not being used
# ...