1
+ import logging
1
2
import os
3
+ import subprocess
2
4
import sys
3
5
from pathlib import Path
4
- import logging
5
- from typing import Dict , List , Set , TYPE_CHECKING , Optional
6
- from pytest import Item , CallInfo , Session
7
- import subprocess
6
+ from typing import TYPE_CHECKING , Dict , List , Optional , Set
7
+
8
+ import pytest
9
+ from pytest import CallInfo , Item , Session
8
10
9
11
logger = logging .getLogger ("dmod_conftest" )
10
12
@@ -35,13 +37,16 @@ def pytest_addoption(parser: "Parser"):
35
37
parser .addini (
36
38
"it_env_vars" , "Environment variables for integration tests" , type = "args"
37
39
)
40
+ parser .addini (
41
+ "env_vars" , "Environment variables to set" , type = "args"
42
+ )
38
43
39
44
40
- def parse_it_env_vars (name_values : List [str ]) -> Dict [str , str ]:
45
+ def parse_env_vars (name_values : List [str ]) -> Dict [str , str ]:
41
46
return dict (map (lambda pair : pair .split ("=" ), name_values ))
42
47
43
48
44
- def pytest_configure (config : "Config" ):
49
+ def _configure_it_env_vars (config : "Config" ):
45
50
if config .getoption ("it" ):
46
51
python_files = config .getini ("python_files" )
47
52
assert isinstance (python_files , list )
@@ -50,11 +55,22 @@ def pytest_configure(config: "Config"):
50
55
it_env_vars = config .getini ("it_env_vars" )
51
56
integration_testing_flag ()
52
57
53
- parsed_vars = parse_it_env_vars (it_env_vars )
58
+ parsed_vars = parse_env_vars (it_env_vars )
54
59
logger .debug (f"Adding these environment variables: { parsed_vars } " )
55
60
56
61
os .environ .update (parsed_vars )
57
62
63
+ def _configure_env_vars (config : "Config" ):
64
+ env_vars = config .getini ("env_vars" )
65
+ assert isinstance (env_vars , list )
66
+ parsed_vars = parse_env_vars (env_vars )
67
+ logger .debug (f"Adding these environment variables: { parsed_vars } " )
68
+ os .environ .update (parsed_vars )
69
+
70
+ def pytest_configure (config : "Config" ):
71
+ _configure_env_vars (config )
72
+ _configure_it_env_vars (config )
73
+
58
74
59
75
def get_setup_script_path (module : Path ) -> Path :
60
76
return module / "setup_it_env.sh"
0 commit comments