-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DEVSHAD-96 feat contest catch exceptions #942
Conversation
with patch("requests.get") as mock_get: | ||
mock_get.return_value = MockResponse(status_code=500, text="Internal Server Error") | ||
with pytest.raises(ContestAPIError): | ||
YandexContestAPI.request_and_check(url, method="get") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай добавим не только проверку методов API, но и конечнго результата, то есть отрендеренного конфига вьюшки.
Нужно при помощи фактори замокать задание, отправить решение за студента, но замокать response нужной ручки на разные результаты и посмотреть, что на странице отображается то, что мы хотим. Для последнего у нас в тестах принято использовать BeautifulSoup.
Хочется проверить заранее обработанные ошибки и всякое разное неожиданное, которое должно отображаться в неизменном виде.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ты хочешь написать еще тесты на работу джобы добавления решения и отображения view submissions, я правильно поняла?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Написать тест на работу джобы можно, но это если не лень.
Основной запрос на тест конечной страницы, которую увидит пользователь. То есть обработать сценарий "студент зашел в лк > отправил задание -> увидел вердикт на странице". А для этого нужно замокать весь процесс со стороны системы, кроме поведения пользователя. В том числе и запуск джобы, потому что эмулировать запуск воркеров в тестах дело совсем неблагодарное. Поэтому достаточно будет просто менять submission.meta["verdict"] и submission.meta["status"], то есть мокать работу джобы отправки решения. И потом BeautifulSoup-ом проверять, что на странице видно то, что мы ожидаем там увидеть.
@Dmi4er4 Оставила один тест без параметров так как мы тестируем view, а она передает 1х1 значений из verdict |
https://st.yandex-team.ru/DEVSHAD-96
connected with: cscenter/site-frontend#500
Если нам вернулось 400 на запрос с message про дублирование
Если нам вернулось 400 не про дублирование или другие code<500
Если нам вернулось 5xx ошибки
Если у нас Timeout или ConnectionError и мы делаем retry
Checklist:
print
statements, unrelated template context variables, commented code, etc)