Я новичок в Джанго и Сельдерее.
высокий уровень:
Я работаю над приложением Django. Со страницы администратора использует запросы (задания). Эти запросы будут отправлены в Redis. Сельдерей тогда будет опрашивать Redis и вытаскивать работу из очереди. После завершения задачи результаты будут сохранены в postgres.
Вот пример задачи, которая используется для запуска некоторых тестов через pytest.main ().
# task for running tests by marker
def run_tests_mark(test_marker):
os.chdir('/service/lib/tests')
# only allow specific strings to be passed in by the user
if test_marker not in ['smoke', 'regression']: # update as more tages are introduced to the project
return 'You have entered an invalid term. Please use either smoke of regression.'
# run pytest command with self contained reporting
results = pytest.main(['-v', '--json-report', '-m', test_marker])
# TODO: after tests run send json report to postgres
Код будет запускать тесты, но, как вы можете видеть из последнего комментария, я хочу взять полученный .json.report и сохранить его в postgres db. results
]
Теперь вот где я запутался.
Нужно ли сначала создавать модель, основанную на всех ключах в отчете json, которые будут сгенерированы pytest?
Если так, то я бы использовал что-то вроде TestResultModel.objects.create(.....)
, чтобы вставить отчет в postgres?
Вот пример json, который получает вывод pytest.main
{"созданный": 1535570420.542123, "длительность": 215.14111948013306,
«код выхода»: 1, «корень»: «/ test», «среда»: {«Python»: «3.6.6»,
«Платформа»: «Linux-4.9.93-linuxkit-aufs-x86_64-with-debian-9.5»,
"Packages": {"pytest": "3.6.2", "py": "1.5.4", "pluggy": "0.6.0"},
"Плагины": {"xdist": "1.22.5", "метаданные": "1.7.0", "json-report":
"0.7.0", "разветвленный": "0.2", "django": "3.3.3", "cov": "2.5.1", "сельдерей":
"4.2.1"}}, "summary": {"пройдено": 34, "не выполнено": 7, "всего": 41}