Issue #11377: Fix quoting on Windows in test_platform

This commit is contained in:
Victor Stinner 2011-03-03 14:07:21 +00:00
parent 1bc75c6cee
commit ff45fedf61

View file

@ -244,14 +244,23 @@ class PlatformTest(unittest.TestCase):
self.assertEqual(platform._parse_release_file(input), output)
def test_popen(self):
command = "'{}' -c 'print(\"Hello\")'".format(sys.executable)
mswindows = (sys.platform == "win32")
if mswindows:
command = '"{}" -c "print(\'Hello\')"'.format(sys.executable)
else:
command = "'{}' -c 'print(\"Hello\")'".format(sys.executable)
with platform.popen(command) as stdout:
hello = stdout.read().strip()
stdout.close()
self.assertEqual(hello, "Hello")
command = "'{}' -c 'import sys; data=sys.stdin.read(); exit(len(data))'".format(sys.executable)
data = 'plop'
if mswindows:
command = '"{}" -c "import sys; data=sys.stdin.read(); exit(len(data))"'
else:
command = "'{}' -c 'import sys; data=sys.stdin.read(); exit(len(data))'"
command = command.format(sys.executable)
with platform.popen(command, 'w') as stdin:
stdout = stdin.write(data)
ret = stdin.close()