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)