Я использую pytest для проверки своих рабочих процессов. У меня есть определенный рабочий процесс, ingest_l0_files
, который использует Client
, чтобы отобразить задачи для работников. Во время тестирования мне нужно искусственно установить путь к каталогу, который задается в переменной среды с именем CURRENT_RUN_LOG_PATH
. Важно отметить, что эта настройка работает безупречно во время тестирования интеграции и реальных прогонов;Я установил переменную окружения в моем скрипте драйвера, и все мои работники получили к нему доступ (потому что они, вероятно, порождены вашим главным процессом). Однако в моем тесте (искусственно установленная) переменная окружения недоступна для рабочих. Почему? Возможно, я могу сказать своему utils_test.client
, чтобы он заново инициализировал свою среду и затем передал ее своим работникам?
from distributed.utils_test import client
def test_ingest_l0_files(client, clean_database_fixture, tmpdir):
"""Test the workflow function `ingest_l0_files`"""
os.putenv('CURRENT_RUN_LOG_PATH', f'{tmpdir}')
get_config('CURRENT_RUN_LOG_PATH')
client = client()
unique_obs = workflow.ingest_l0_files([L0_ALL_FILE, L0_LPT_FILE], client)
assert len(unique_obs) == 20
os.unsetenv('CURRENT_RUN_LOG_PATH')