[Python-checkins] cpython (3.3): Issue #20672: Fixed tests for TarFile.list() on non-UTF-8 locales.

serhiy.storchaka python-checkins at python.org
Wed Feb 19 18:04:59 CET 2014


http://hg.python.org/cpython/rev/b508cbc29acf
changeset:   89277:b508cbc29acf
branch:      3.3
parent:      89272:6227b0ecb5fb
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Wed Feb 19 18:44:12 2014 +0200
summary:
  Issue #20672: Fixed tests for TarFile.list() on non-UTF-8 locales.

files:
  Lib/test/test_tarfile.py |  18 ++++++++++--------
  1 files changed, 10 insertions(+), 8 deletions(-)


diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -238,14 +238,16 @@
         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
         # ...

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list