summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBernát Gábor <gaborjbernat@gmail.com>2022-12-02 17:56:41 -0800
committerGitHub <noreply@github.com>2022-12-02 17:56:41 -0800
commit3bae5d9d3360ae34d558afcd8a0f3ac9e51fa808 (patch)
treed12934d03b318e6fd41edb5e2ddb60a6dccace78 /tests
parent188ba4aa4a864b6749dca00bc0dec98688d3b81b (diff)
downloadtox-git-3bae5d9d3360ae34d558afcd8a0f3ac9e51fa808.tar.gz
Do not set COLUMNS or LINES if already set by user (#2580)
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net> Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
Diffstat (limited to 'tests')
-rw-r--r--tests/execute/local_subprocess/test_local_subprocess.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/execute/local_subprocess/test_local_subprocess.py b/tests/execute/local_subprocess/test_local_subprocess.py
index fa3b43a3..6bbf36fa 100644
--- a/tests/execute/local_subprocess/test_local_subprocess.py
+++ b/tests/execute/local_subprocess/test_local_subprocess.py
@@ -340,3 +340,21 @@ def _create_shebang_test(tmp_path: Path, env: dict[str, str]) -> tuple[str, Path
writer = create_autospec(SyncWrite)
instance = LocalSubProcessExecuteInstance(request, create_autospec(ExecuteOptions), writer, writer)
return exe, script, instance
+
+
+@pytest.mark.parametrize("key", ["COLUMNS", "ROWS"])
+def test_local_execute_does_not_overwrite(key: str, mocker: MockerFixture) -> None:
+ mocker.patch("shutil.get_terminal_size", return_value=(101, 102))
+ env = dict(os.environ)
+ env[key] = key
+ executor = LocalSubProcessExecutor(colored=False)
+ cmd = [sys.executable, "-c", f"import os; print(os.environ['{key}'], end='')"]
+ request = ExecuteRequest(cmd=cmd, stdin=StdinSource.API, cwd=Path.cwd(), env=env, run_id="")
+ out_err = FakeOutErr()
+ with executor.call(request, show=False, out_err=out_err.out_err, env=MagicMock()) as status:
+ while status.exit_code is None: # pragma: no branch
+ status.wait()
+ outcome = status.outcome
+
+ assert outcome is not None
+ assert outcome.out == key