@@ -165,10 +165,10 @@ def test_set_env_honor_override(eval_set_env: EvalSetEnv) -> None:
165
165
("conf_type" , "config" ),
166
166
[
167
167
("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"' ),
169
169
# Using monkeypatched env setting as a reference
170
170
("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"' ),
172
172
],
173
173
)
174
174
def test_set_env_environment_file (
@@ -200,6 +200,37 @@ def test_set_env_environment_file(
200
200
}
201
201
202
202
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
+
203
234
def test_set_env_environment_file_missing (tox_project : ToxProjectCreator ) -> None :
204
235
project = tox_project ({"tox.ini" : "[testenv]\n package=skip\n set_env=file|magic.txt" })
205
236
result = project .run ("r" )
0 commit comments