Loading lib/galaxy/util/commands.py +3 −2 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ def new_clean_env(): Returns a minimal environment to use when invoking a subprocess """ env = {} for k in ("HOME", "PATH", "TMPDIR"): for k in ("HOME", "LC_CTYPE", "PATH", "TMPDIR"): if k in os.environ: env[k] = os.environ[k] if "TMPDIR" not in env: Loading @@ -173,6 +173,7 @@ def new_clean_env(): # This is needed e.g. for Python < 3.7 where # `locale.getpreferredencoding()` (also used by open() to determine the # default file encoding) would return `ANSI_X3.4-1968` without this. if not env.get("LC_CTYPE", "").endswith("UTF-8"): env["LC_CTYPE"] = "C.UTF-8" return env Loading test/unit/util/test_commands.py 0 → 100644 +20 −0 Original line number Diff line number Diff line import os from galaxy.util.commands import new_clean_env def test_new_clean_env() -> None: saved_environ = os.environ.copy() os.environ["FOO"] = "foo" os.environ.pop("TMPDIR", None) try: clean_env = new_clean_env() finally: os.environ.clear() os.environ.update(saved_environ) assert "FOO" not in clean_env for k in ("HOME", "PATH"): if k in saved_environ: assert clean_env[k] == saved_environ[k] assert clean_env["LC_CTYPE"].endswith("UTF-8") assert clean_env["TMPDIR"] Loading
lib/galaxy/util/commands.py +3 −2 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ def new_clean_env(): Returns a minimal environment to use when invoking a subprocess """ env = {} for k in ("HOME", "PATH", "TMPDIR"): for k in ("HOME", "LC_CTYPE", "PATH", "TMPDIR"): if k in os.environ: env[k] = os.environ[k] if "TMPDIR" not in env: Loading @@ -173,6 +173,7 @@ def new_clean_env(): # This is needed e.g. for Python < 3.7 where # `locale.getpreferredencoding()` (also used by open() to determine the # default file encoding) would return `ANSI_X3.4-1968` without this. if not env.get("LC_CTYPE", "").endswith("UTF-8"): env["LC_CTYPE"] = "C.UTF-8" return env Loading
test/unit/util/test_commands.py 0 → 100644 +20 −0 Original line number Diff line number Diff line import os from galaxy.util.commands import new_clean_env def test_new_clean_env() -> None: saved_environ = os.environ.copy() os.environ["FOO"] = "foo" os.environ.pop("TMPDIR", None) try: clean_env = new_clean_env() finally: os.environ.clear() os.environ.update(saved_environ) assert "FOO" not in clean_env for k in ("HOME", "PATH"): if k in saved_environ: assert clean_env[k] == saved_environ[k] assert clean_env["LC_CTYPE"].endswith("UTF-8") assert clean_env["TMPDIR"]