diff --git a/docs/changelog/1313.bugfix.rst b/docs/changelog/1313.bugfix.rst new file mode 100644 index 000000000..8b89489dd --- /dev/null +++ b/docs/changelog/1313.bugfix.rst @@ -0,0 +1 @@ +Ensure ``TOX_WORK_DIR`` is a native string in ``os.environ`` - by :user:`asottile`. diff --git a/src/tox/session/__init__.py b/src/tox/session/__init__.py index e93886841..048feb94e 100644 --- a/src/tox/session/__init__.py +++ b/src/tox/session/__init__.py @@ -63,7 +63,7 @@ def main(args): try: config = load_config(args) config.logdir.ensure(dir=1) - with set_os_env_var("TOX_WORK_DIR", config.toxworkdir): + with set_os_env_var(str("TOX_WORK_DIR"), config.toxworkdir): session = build_session(config) exit_code = session.runcommand() if exit_code is None: diff --git a/tests/unit/session/test_session.py b/tests/unit/session/test_session.py index b90430395..df5814bb6 100644 --- a/tests/unit/session/test_session.py +++ b/tests/unit/session/test_session.py @@ -285,6 +285,10 @@ def assert_popen_env(res): if tox_id != "GLOB": assert env["TOX_ENV_NAME"] == tox_id assert env["TOX_ENV_DIR"] == os.path.join(res.cwd, ".tox", tox_id) + # ensure native strings for environ for windows + for k, v in env.items(): + assert type(k) is str, (k, v, type(k)) + assert type(v) is str, (k, v, type(v)) def test_command_prev_post_ok(cmd, initproj, mock_venv):