- Забрать этот репозиторий себе любым способом, кроме форка;
- Выполнить задание(я);
- Загрузить решение себе на github и прислать ссылку.
Первое задание не требует написания кода. Для остальных трёх задач необходимо написать тесты, проверяющие решение студента, и дающие подсказки в случае ошибок.
- Решение студента импортируется в тестовый модуль, соответственно все переменные, классы и функции студента доступны в нем.
user_code
— переменная, в которой в виде строки хранится весь код студента.output
— stdout работы файла с кодом студента (все егоprint()
) в виде одной строки.
- Тест должен проверить правильность конечного решения студента, а также шаги, которые к этому решению привели.
- Описание найденной ошибки (assert message) должно подсказывать что не так сделал студент.
- Сама проверка происходит, используя
assert
и текстовое сообщения студенту:assert False, 'Вы ошиблись в выводе на экран'
- Авторское решение не является идеальным, но в рамках задачи будет для вас эталонным, и решение, к которому придет студент, наверняка будет существенно ниже по качеству, так что при написании тестов крайне важно мыслить как студент, а не как автор, который сразу пишет рабочее решение.
Часто бывает, что студенты изменяют или удаляют исходные переменные, которые мы им даем в прекоде, что потом часто заводит их в тупик.
- Версия Python 3.7
- Тесты нужно писать на чистом pytest, никакого unittest не нужно
- При написании тестов крайне желательно обходиться стандартными библиотеками и модулями, и избегать доп. модулей для pytest без острой необходимости
В папках с задачами находится прекод (с которого студент начинает решать задание) и авторское (эталонное) решение, по которому пишутся тесты.
precode.py
— прекод для студентаauthor.py
— эталонное решениеtest.py
— напишите ваш тест в этом файле