У меня есть следующее приспособление в conftest.py, которое возвращает словарь настроек среды, такой как пользователь, пароль и т. Д .:
@pytest.fixture
def envparams(request):
env = request.config.getoption("--env")
return env_params[env]
Тогда у меня есть модуль, как:
def request_master_url(envparams):
cje_master_url = envparams['url']+'/'+test_master
cje_user = envparams['user']
cje_pass = envparams['password']
local = testinfra.get_host("ssh://localhost")
results = local.command(
'curl -L -I --user '+cje_user+':'
+ cje_pass+' '+cje_master_url+'| grep HTTP\
|tail -1').stdout
if '200 OK' in results:
return True
else:
return False
и тест, который использует этот модуль, как:
def test_cje_high_availability(envparams, env_option, script_loc):
workstation = testinfra.get_host('ssh://'+testinfra_hosts[0])
if not security.request_master_url(envparams):
print(test_master+' - is not available\n')
create_team_master(test_master, envparams, script_loc)
Можно ли как-то избавиться от параметра envparams из функции модуля, чтобы я мог вызвать его без дополнительного параметра?
как:
security.request_master_url(envparams)
Мне нужно настроить прибор только один раз за сеанс. Я пытался использовать:
@pytest.mark.usefixtures('envparams')
def request_master_url():
Но я не уверен, как получить значения, возвращаемые этим прибором.