Выполняя следующие шаги вы подготовите отдельный проект для сдачи домашних работ, который также будет репозиторием, опубликованным на общедоступном ресурсе
- создайте новую папку, где будете хранить решения домашних заданий
- добавьте README файл в корень папки (это часть первой домашки)
- любым удобным способом получите данный репозиторий на локальном компьютере:
- скачайте эту ветку (будучи на странице репозитория нажмите кнопку Code и выберите Download ZIP, распакуйте скачанный архив)
- или склонируйте репозиторий и переключитесь на данную ветку (если уже удалось разобраться с git)
- в своём проекте создайте папку
.github
, в ней создайте папкуworkflows
- скопируйте файл
run_tests.yml
(из скачанного) в папку.github/workflows
в своём проекте (получится.github/workflows/run_tests.yml
) - скопируйте папку
testing
(из скачанного) в корень вашего проекта (в папку с README файлом) - скопируйте следующие файлы в корень вашего проекта (в папку с README файлом):
.gitignore
requirements.txt
requirements-dev.txt
pytest.ini
- проинициализируйте git репозиторий в данном проекте. Выполните добавление файлов и коммит
- ваш репозиторий готов к публикации
Убедитесь, что в вашем репозитории присутствует файл
.github/workflows/run_tests.yml
для GitHub Actions, а также папкаtesting
, в которой находятся все тесты
Не создавайте в проекте (не копируйте в ваш проект) папки домашек (
homework_01
,homework_03
, etc), если не собираетесь их выполнять. Если загрузить невыполненное дз, тесты упадут. Если решения не будет вовсе (просто отсутствует модуль с домашкой), тест "пройдёт мимо" и не упадёт.
- после подготовки к выполнению домашнего задания у вас уже есть локальная копия данного репозитория (данной ветки). Если по какой-то причине это не так, скачайте данный репозиторий, эту ветку (или склонируйте репозиторий и переключитесь на данную ветку)
- скопируйте папку
homework_02
в корень своего проекта (где02
это номер домашней работы, которую вы выполняете) - используйте каркас, доступный в этой папке, для выполнения домашней работы (редактируйте доступные файлы, функции, классы)
- не изменяйте имя папки, файлов, а также тесты
- созданные функции и классы не нужно переименовывать, так как тесты будут искать их для выполнения проверок, тем не менее можно (и зачастую нужно) редактировать (добавлять) параметры функций
- все зависимости, которые использует ваш проект, должны быть "заморожены" в корне репозитория. Для этого можно использовать команду
pip freeze > requirements.txt
. Обновляйте файл по мере добавления новых зависимостей. Добавляйте в зависимости только то, что нужно для выполнения домашки, не нужно отправлять туда всё содержимое виртуального окружения - Перед сдачей домашки обязательно убедитесь, что тест
homework_0x
прошёл (PASSED
), а не пропущен (SKIPPED
)
- для проверки домашнего задания используются автоматические тесты
- не для каждого домашнего задания есть тесты. Однако, если тесты для определенного домашнего задания присутствуют в данном репозитории, они должны пройти
- решенным считается то домашнее задание, для которого полностью прошли соответствующие тесты - в таком случае "зачёт"
- код решения домашнего задания должен работать относительно папки домашнего задания. То есть файл
main.py
должен находиться в папкеhomework_02
(соответственно для каждой домашки) - все домашки должны быть в своих папках, всё в одной ветке, чтобы можно было сразу видеть количество выполненных домашек
- перед сдачей домашки убедитесь, что тесты проходят.
Для этого можно выполнить их локально:
pytest testing/test_homework_02 -s -vv
из корня проекта- установите необходимые зависимости в текущее окружение:
pip install -r requirements-dev.txt
- не забудьте изменить номер домашки для проверки другого модуля
- установите необходимые зависимости в текущее окружение:
- также проверьте, что тесты прошли и на GitHub (для этого в репозитории необходимо перейти в раздел Actions)
- тесты не должны быть изменены: они должны совпадать с исходными тестами (находящимися в этом репозитории)
- в некоторых заданиях необходимо использовать переменные окружения (вы поймёте, когда это будет нужно, на первых домашках пропустите).
Если вы выполняете тесты в терминале, то воспользуйтесь командой
export FOO_BAR=spam_eggs
для объявления в своём окружении. При выполнении тестов в PyCharm укажите Environmental variables в свойствах конфигурации теста