From 099c36d546cda842b44a93067d45e146e4ae77e5 Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Tue, 5 Feb 2019 08:01:36 -0800 Subject: [PATCH] Replaced manual current directory management with subprocess's cwd argument. --- tests/admin_scripts/tests.py | 10 ++-------- tests/postgres_tests/test_integration.py | 4 +--- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 7b41c40199..79ff14ca4c 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -128,7 +128,6 @@ class AdminScriptTestCase(SimpleTestCase): # Define a temporary environment for the subprocess test_environ = os.environ.copy() - old_cwd = os.getcwd() # Set the test environment if settings_file: @@ -140,17 +139,12 @@ class AdminScriptTestCase(SimpleTestCase): test_environ['PYTHONPATH'] = os.pathsep.join(python_path) test_environ['PYTHONWARNINGS'] = '' - # Move to the test directory and run - os.chdir(self.test_dir) - out, err = subprocess.Popen( + return subprocess.Popen( [sys.executable, script] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, + cwd=self.test_dir, env=test_environ, universal_newlines=True, ).communicate() - # Move back to the old working directory - os.chdir(old_cwd) - - return out, err def run_django_admin(self, args, settings_file=None): script_dir = os.path.abspath(os.path.join(os.path.dirname(django.__file__), 'bin')) diff --git a/tests/postgres_tests/test_integration.py b/tests/postgres_tests/test_integration.py index 277001d31f..20abf54e56 100644 --- a/tests/postgres_tests/test_integration.py +++ b/tests/postgres_tests/test_integration.py @@ -7,13 +7,11 @@ from . import PostgreSQLSimpleTestCase class PostgresIntegrationTests(PostgreSQLSimpleTestCase): def test_check(self): - old_cwd = os.getcwd() - self.addCleanup(lambda: os.chdir(old_cwd)) - os.chdir(os.path.dirname(__file__)) result = subprocess.run( [sys.executable, '-m', 'django', 'check', '--settings', 'integration_settings'], stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, + cwd=os.path.dirname(__file__), ) stderr = '\n'.join([e.decode() for e in result.stderr.splitlines()]) self.assertEqual(result.returncode, 0, msg=stderr)