@@ -165,10 +165,10 @@ def test_set_env_honor_override(eval_set_env: EvalSetEnv) -> None:
165165 ("conf_type" , "config" ),
166166 [
167167 ("ini" , "[testenv]\n package=skip\n set_env=file|A{/}a.txt\n change_dir=C" ),
168- ("toml" , '[env_run_base]\n package="skip"\n set_env=" file| A{/}a.txt"\n change_dir="C"' ),
168+ ("toml" , '[env_run_base]\n package="skip"\n set_env={ file=" A{/}a.txt"} \n change_dir="C"' ),
169169 # Using monkeypatched env setting as a reference
170170 ("ini" , "[testenv]\n package=skip\n set_env=file|{env:myenvfile}\n change_dir=C" ),
171- ("toml" , '[env_run_base]\n package="skip"\n set_env=" file| {env:myenvfile}"\n change_dir="C"' ),
171+ ("toml" , '[env_run_base]\n package="skip"\n set_env={ file=" {env:myenvfile}"} \n change_dir="C"' ),
172172 ],
173173)
174174def test_set_env_environment_file (
@@ -200,6 +200,37 @@ def test_set_env_environment_file(
200200 }
201201
202202
203+ @pytest .mark .parametrize (
204+ ("conf_type" , "config" ),
205+ [
206+ ("ini" , "[testenv]\n package=skip\n set_env=file|A{/}a.txt\n X=y\n change_dir=C" ),
207+ ("toml" , '[env_run_base]\n package="skip"\n set_env={file="A{/}a.txt", X="y"}\n change_dir="C"' ),
208+ # Using monkeypatched env setting as a reference
209+ ("ini" , "[testenv]\n package=skip\n set_env=file|{env:myenvfile}\n X=y\n change_dir=C" ),
210+ ("toml" , '[env_run_base]\n package="skip"\n set_env={file="{env:myenvfile}", X="y"}\n change_dir="C"' ),
211+ ],
212+ )
213+ def test_set_env_environment_file_combined_with_normal_setting (
214+ conf_type : _ConfType , config : str , eval_set_env : EvalSetEnv , monkeypatch : MonkeyPatch
215+ ) -> None :
216+ env_file = """
217+ A=1
218+ """
219+ # Monkeypatch only used for some of the parameters
220+ monkeypatch .setenv ("myenvfile" , "A{/}a.txt" )
221+
222+ extra = {"A" : {"a.txt" : env_file }, "B" : None , "C" : None }
223+ set_env = eval_set_env (config , conf_type = conf_type , extra_files = extra , from_cwd = Path ("B" ))
224+ content = {k : set_env .load (k ) for k in set_env }
225+ assert content == {
226+ "PIP_DISABLE_PIP_VERSION_CHECK" : "1" ,
227+ "PYTHONHASHSEED" : ANY ,
228+ "A" : "1" ,
229+ "X" : "y" ,
230+ "PYTHONIOENCODING" : "utf-8" ,
231+ }
232+
233+
203234def test_set_env_environment_file_missing (tox_project : ToxProjectCreator ) -> None :
204235 project = tox_project ({"tox.ini" : "[testenv]\n package=skip\n set_env=file|magic.txt" })
205236 result = project .run ("r" )
0 commit comments