From bc6262675c70e62ab2d578505e52a409a2c0849f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 9 Sep 2016 23:22:09 -0700 Subject: Issue #18401: Fix test_pdb on Windows * Use "with Popen" to cleanup properly the process * Use support.temp_cwd() to properly change the working directory * Use environ.pop() to cleanup the code --- Lib/test/test_pdb.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 2076e2f..74417c1 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -4,7 +4,6 @@ import doctest import os import pdb import sys -import tempfile import types import unittest import subprocess @@ -1057,19 +1056,15 @@ class PdbTestCase(unittest.TestCase): def test_readrc_kwarg(self): - save_home = os.environ.get('HOME', None) - save_dir = os.getcwd() script = textwrap.dedent(""" import pdb; pdb.Pdb(readrc=False).set_trace() print('hello') """) - try: - if save_home is not None: - del os.environ['HOME'] - with tempfile.TemporaryDirectory() as dirname: - os.chdir(dirname) + save_home = os.environ.pop('HOME', None) + try: + with support.temp_cwd(): with open('.pdbrc', 'w') as f: f.write("invalid\n") @@ -1083,16 +1078,14 @@ class PdbTestCase(unittest.TestCase): stdin=subprocess.PIPE, stderr=subprocess.PIPE, ) - self.addCleanup(proc.stdout.close) - self.addCleanup(proc.stderr.close) - stdout, stderr = proc.communicate(b'q\n') - self.assertNotIn("NameError: name 'invalid' is not defined", - stdout.decode()) + with proc: + stdout, stderr = proc.communicate(b'q\n') + self.assertNotIn("NameError: name 'invalid' is not defined", + stdout.decode()) finally: if save_home is not None: os.environ['HOME'] = save_home - os.chdir(save_dir) def tearDown(self): support.unlink(support.TESTFN) -- cgit v0.12