@@ -51,14 +51,15 @@ def test_set_env_bad_line() -> None:
51
51
SetEnv ("A" , "py" , "py" , Path ())
52
52
53
53
54
- _ConfType = Literal ["ini" , "toml" ]
54
+ ConfigFileFormat = Literal ["ini" , "toml" ]
55
55
56
56
57
57
class EvalSetEnv (Protocol ):
58
58
def __call__ (
59
59
self ,
60
60
config : str ,
61
- conf_type : _ConfType = "ini" ,
61
+ * ,
62
+ of_type : ConfigFileFormat = "ini" ,
62
63
extra_files : dict [str , Any ] | None = ...,
63
64
from_cwd : Path | None = ...,
64
65
) -> SetEnv : ...
@@ -68,14 +69,12 @@ def __call__(
68
69
def eval_set_env (tox_project : ToxProjectCreator ) -> EvalSetEnv :
69
70
def func (
70
71
config : str ,
71
- conf_type : _ConfType = "ini" ,
72
+ * ,
73
+ of_type : ConfigFileFormat = "ini" ,
72
74
extra_files : dict [str , Any ] | None = None ,
73
75
from_cwd : Path | None = None ,
74
76
) -> SetEnv :
75
- if conf_type == "ini" :
76
- prj = tox_project ({"tox.ini" : config , ** (extra_files or {})})
77
- else :
78
- prj = tox_project ({"tox.toml" : config , ** (extra_files or {})})
77
+ prj = tox_project ({f"tox.{ of_type } " : config , ** (extra_files or {})})
79
78
result = prj .run ("c" , "-k" , "set_env" , "-e" , "py" , from_cwd = None if from_cwd is None else prj .path / from_cwd )
80
79
result .assert_success ()
81
80
set_env : SetEnv = result .env_conf ("py" )["set_env" ]
@@ -162,17 +161,18 @@ def test_set_env_honor_override(eval_set_env: EvalSetEnv) -> None:
162
161
163
162
164
163
@pytest .mark .parametrize (
165
- ("conf_type " , "config" ),
164
+ ("of_type " , "config" ),
166
165
[
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"' ),
169
- # Using monkeypatched env setting as a reference
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"' ),
166
+ pytest .param ("ini" , "[testenv]\n package=skip\n set_env=file|A{/}a.txt\n change_dir=C" , id = "ini" ),
167
+ pytest .param ("toml" , '[env_run_base]\n package="skip"\n set_env={file="A{/}a.txt"}\n change_dir="C"' , id = "toml" ),
168
+ pytest .param ("ini" , "[testenv]\n package=skip\n set_env=file|{env:env_file}\n change_dir=C" , id = "ini-env" ),
169
+ pytest .param (
170
+ "toml" , '[env_run_base]\n package="skip"\n set_env={file="{env:env_file}"}\n change_dir="C"' , id = "toml-env"
171
+ ),
172
172
],
173
173
)
174
174
def test_set_env_environment_file (
175
- conf_type : _ConfType , config : str , eval_set_env : EvalSetEnv , monkeypatch : MonkeyPatch
175
+ of_type : ConfigFileFormat , config : str , eval_set_env : EvalSetEnv , monkeypatch : MonkeyPatch
176
176
) -> None :
177
177
env_file = """
178
178
A=1
@@ -182,11 +182,10 @@ def test_set_env_environment_file(
182
182
E = "1"
183
183
F =
184
184
"""
185
- # Monkeypatch only used for some of the parameters
186
- monkeypatch .setenv ("myenvfile" , "A{/}a.txt" )
185
+ monkeypatch .setenv ("env_file" , "A{/}a.txt" )
187
186
188
187
extra = {"A" : {"a.txt" : env_file }, "B" : None , "C" : None }
189
- set_env = eval_set_env (config , conf_type = conf_type , extra_files = extra , from_cwd = Path ("B" ))
188
+ set_env = eval_set_env (config , of_type = of_type , extra_files = extra , from_cwd = Path ("B" ))
190
189
content = {k : set_env .load (k ) for k in set_env }
191
190
assert content == {
192
191
"PIP_DISABLE_PIP_VERSION_CHECK" : "1" ,
@@ -201,26 +200,31 @@ def test_set_env_environment_file(
201
200
202
201
203
202
@pytest .mark .parametrize (
204
- ("conf_type " , "config" ),
203
+ ("of_type " , "config" ),
205
204
[
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"' ),
205
+ pytest .param ("ini" , "[testenv]\n package=skip\n set_env=file|A{/}a.txt\n X=y\n change_dir=C" , id = "ini" ),
206
+ pytest .param (
207
+ "toml" , '[env_run_base]\n package="skip"\n set_env={file="A{/}a.txt", X="y"}\n change_dir="C"' , id = "toml"
208
+ ),
209
+ pytest .param ("ini" , "[testenv]\n package=skip\n set_env=file|{env:env_file}\n X=y\n change_dir=C" , id = "ini-env" ),
210
+ pytest .param (
211
+ "toml" ,
212
+ '[env_run_base]\n package="skip"\n set_env={file="{env:env_file}", X="y"}\n change_dir="C"' ,
213
+ id = "toml-env" ,
214
+ ),
211
215
],
212
216
)
213
217
def test_set_env_environment_file_combined_with_normal_setting (
214
- conf_type : _ConfType , config : str , eval_set_env : EvalSetEnv , monkeypatch : MonkeyPatch
218
+ of_type : ConfigFileFormat , config : str , eval_set_env : EvalSetEnv , monkeypatch : MonkeyPatch
215
219
) -> None :
216
220
env_file = """
217
221
A=1
218
222
"""
219
223
# Monkeypatch only used for some of the parameters
220
- monkeypatch .setenv ("myenvfile " , "A{/}a.txt" )
224
+ monkeypatch .setenv ("env_file " , "A{/}a.txt" )
221
225
222
226
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" ))
227
+ set_env = eval_set_env (config , of_type = of_type , extra_files = extra , from_cwd = Path ("B" ))
224
228
content = {k : set_env .load (k ) for k in set_env }
225
229
assert content == {
226
230
"PIP_DISABLE_PIP_VERSION_CHECK" : "1" ,
0 commit comments