From 009fddc96b88a9aee1232d6a2637f2970fdcfb50 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Tue, 3 Nov 2020 11:38:40 +0100 Subject: [PATCH] Refs #32061 -- Fixed test_crash_password_does_not_leak() crash on Windows. When env is passed to subprocess.run() we should pass all existing environment variables. This fixes crash on Windows: Fatal Python error: failed to get random numbers to initialize Python Fatal Python error: _Py_HashRandomization_Init: failed to get random numbers to initialize Python Python runtime state: preinitialized --- tests/dbshell/test_mysql.py | 3 +++ tests/dbshell/test_postgresql.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/tests/dbshell/test_mysql.py b/tests/dbshell/test_mysql.py index b002a5d274..c3ecc6503b 100644 --- a/tests/dbshell/test_mysql.py +++ b/tests/dbshell/test_mysql.py @@ -1,3 +1,4 @@ +import os import subprocess import sys from pathlib import Path @@ -190,6 +191,8 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): }, [], ) + if env: + env = {**os.environ, **env} fake_client = Path(__file__).with_name('fake_client.py') args[0:1] = [sys.executable, str(fake_client)] with self.assertRaises(subprocess.CalledProcessError) as ctx: diff --git a/tests/dbshell/test_postgresql.py b/tests/dbshell/test_postgresql.py index 4d8804e43e..ccf49d7e50 100644 --- a/tests/dbshell/test_postgresql.py +++ b/tests/dbshell/test_postgresql.py @@ -1,3 +1,4 @@ +import os import signal import subprocess import sys @@ -121,6 +122,8 @@ class PostgreSqlDbshellCommandTestCase(SimpleTestCase): # The password doesn't leak in an exception that results from a client # crash. args, env = self.settings_to_cmd_args_env({'PASSWORD': 'somepassword'}, []) + if env: + env = {**os.environ, **env} fake_client = Path(__file__).with_name('fake_client.py') args[0:1] = [sys.executable, str(fake_client)] with self.assertRaises(subprocess.CalledProcessError) as ctx: