Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f6a38e1

Browse files
Issue #20672: Fixed tests for TarFile.list() on non-UTF-8 locales.
2 parents 22234da + 162c477 commit f6a38e1

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

Lib/test/test_tarfile.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -240,14 +240,16 @@ def test_list(self):
240240
self.assertIn(b'ustar/dirtype/', out)
241241
self.assertIn(b'ustar/dirtype-with-size/', out)
242242
# Make sure it is able to print unencodable characters
243-
self.assertIn(br'ustar/umlauts-'
244-
br'\udcc4\udcd6\udcdc\udce4\udcf6\udcfc\udcdf', out)
245-
self.assertIn(br'misc/regtype-hpux-signed-chksum-'
246-
br'\udcc4\udcd6\udcdc\udce4\udcf6\udcfc\udcdf', out)
247-
self.assertIn(br'misc/regtype-old-v7-signed-chksum-'
248-
br'\udcc4\udcd6\udcdc\udce4\udcf6\udcfc\udcdf', out)
249-
self.assertIn(br'pax/bad-pax-\udce4\udcf6\udcfc', out)
250-
self.assertIn(br'pax/hdrcharset-\udce4\udcf6\udcfc', out)
243+
def conv(b):
244+
s = b.decode(self.tar.encoding, 'surrogateescape')
245+
return s.encode('ascii', 'backslashreplace')
246+
self.assertIn(conv(b'ustar/umlauts-\xc4\xd6\xdc\xe4\xf6\xfc\xdf'), out)
247+
self.assertIn(conv(b'misc/regtype-hpux-signed-chksum-'
248+
b'\xc4\xd6\xdc\xe4\xf6\xfc\xdf'), out)
249+
self.assertIn(conv(b'misc/regtype-old-v7-signed-chksum-'
250+
b'\xc4\xd6\xdc\xe4\xf6\xfc\xdf'), out)
251+
self.assertIn(conv(b'pax/bad-pax-\xe4\xf6\xfc'), out)
252+
self.assertIn(conv(b'pax/hdrcharset-\xe4\xf6\xfc'), out)
251253
# Make sure it prints files separated by one newline without any
252254
# 'ls -l'-like accessories if verbose flag is not being used
253255
# ...

0 commit comments

Comments
 (0)