Issue #16218: Fix test for issue again

This commit is contained in:
Andrew Svetlov 2012-11-05 08:20:15 +02:00
parent 33f13ee133
commit 7529620a15
1 changed files with 19 additions and 18 deletions

View File

@ -363,25 +363,26 @@ class CmdLineTest(unittest.TestCase):
self.assertTrue(text[1].startswith(' File ')) self.assertTrue(text[1].startswith(' File '))
self.assertTrue(text[3].startswith('NameError')) self.assertTrue(text[3].startswith('NameError'))
def test_non_utf8(self): def test_non_ascii(self):
# Issue #16218 # Issue #16218
with temp_dir() as script_dir: # non-ascii filename encodable to cp1252, cp932, latin1 and utf8
script_basename = '\u0441\u043a\u0440\u0438\u043f\u0442' filename = support.TESTFN + '\xa3.py'
try: try:
script_basename.encode(sys.getfilesystemencoding()) os.fsencode(filename)
except UnicodeEncodeError: except UnicodeEncodeError:
raise unittest.SkipTest("Filesystem doesn't support " self.skipTest(
"unicode names") "Filesystem encoding %r cannot encode "
source = 'print("test output")\n' "the filename: %a"
script_name = _make_test_script(script_dir, script_basename, source) % (sys.getfilesystemencoding(), filename))
if not __debug__: source = 'print(ascii(__file__))\n'
run_args = ('-' + 'O' * sys.flags.optimize, script_name) script_name = _make_test_script(os.curdir, filename, source)
else: self.addCleanup(support.unlink, script_name)
run_args = (script_name,) rc, stdout, stderr = assert_python_ok(script_name)
rc, out, _ = assert_python_ok(*run_args) self.assertEqual(
self.assertEqual(0, rc) ascii(script_name),
expected = ("test output" + os.linesep).encode('ascii') stdout.rstrip().decode('ascii'),
self.assertEqual(expected, out) 'stdout=%r stderr=%r' % (stdout, stderr))
self.assertEqual(0, rc)
def test_main(): def test_main():