User Tools

Site Tools


chat-bots:testing_code_quality

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
chat-bots:testing_code_quality [2025/10/29 09:49] – Reading assignment olegsklyarovchat-bots:testing_code_quality [2025/10/29 10:14] (current) – [Reading assignment (прочитать и понять)] olegsklyarov
Line 7: Line 7:
   * [[https://en.wikipedia.org/wiki/Dependency_inversion_principle|Dependency Inversion Principle (DIP)]]   * [[https://en.wikipedia.org/wiki/Dependency_inversion_principle|Dependency Inversion Principle (DIP)]]
   * [[https://www.piter.com/product/chistaya-arhitektura-iskusstvo-razrabotki-programmnogo-obespecheniya|Мартин Роберт. «Чистая архитектура. Искусство разработки программного обеспечения»]] (рекомендуется)   * [[https://www.piter.com/product/chistaya-arhitektura-iskusstvo-razrabotki-programmnogo-obespecheniya|Мартин Роберт. «Чистая архитектура. Искусство разработки программного обеспечения»]] (рекомендуется)
 +  * [[https://docs.github.com/en/actions|Github Actions]]
   * [[https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement|The assert statement]]   * [[https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement|The assert statement]]
   * [[https://docs.python.org/3/library/abc.html|Abstract Base Classes]]   * [[https://docs.python.org/3/library/abc.html|Abstract Base Classes]]
Line 15: Line 16:
  
 ==== Практика (для зачета) ==== ==== Практика (для зачета) ====
 +
 +Данное Д/з должно быть единственным в вашем гитхаб. Git ветка - главная (main / master). Это нужно для простоты настройки Github actions (CI / CD). Поэтому если у Вас все Д/з в одном репозитории в отдельных каталогах, то рекомендуется для данного Д/з создать новый репозиторий.
 +
 +**Задача**: взять Pizza bot из прошлого Д/з, добавить в него инструменты качества кода (black, ruff, pytest), написать минимум 2-3 теста, и настроить Github Action для CI/CD.
 +
 +
 +===Требуется реализовать===
 +
 +  - Получите ✅ по предыдущему Д/з Pizza bot
 +  - Если в Вашем репозитории лежит несколько Д/з в разных каталогах, то требуется создать новый репозиторий и скопировать в него проект Pizza bot (протестировать, что проект запускается и работает корректно)
 +  - Добавить black в requirements.txt. Запустить black на весь проект. Посмотреть git diff и осознать как black исправил код. Сделать коммит с сообщением "black reformat whole project".
 +  - Добавить ruff в requirements.txt. Запустить ruff на весь проект. Посмотреть git diff и осознать как ruff исправил код / подсветил ошибки. Исправить все то, что не смог ruff. При крайней необходимости можно заигнорировать строчку. To ignore a specific violation on a line, append # noqa: {code} (e.g., # noqa: F841) to the end of the line. Сделать коммит с сообщением "ruff fix whole project".
 +  - Сделать рефакторинг проекта, применив инверсию зависимостей для telegram_api_client и database_client (см. запись лекции). Проверить, что Pizza bot по-прежнему корректно работает. Запустить и применить исправления black и ruff.
 +  - Добавить pytest в requirements.txt. Написать минимум 2-3 теста.Запустить и применить исправления black и ruff.
 +  - Добавить в проект конфиг для Github Actions. При каждом git pish а так же при создании pull request на github должна запускаться black, ruff и pytest. Запушить результат на гитхам, убедиться гитхаб запустил все три инструмента и результат - зеленая галочка ✅.
 +
 +===Процесс сдачи===
 +
 +  - (студент): напишите в ТГ [[https://t.me/olegsklyarov|преподавателю]] **одно** сообщение, содержащее текст:
 +    - ''Для сдачи Д/з Tests, code quality:''
 +    - Ссылка на гит с исходным кодом бота
 +  - (преподаватель) проверяет наличие зеленой галочки на гитхабе, делает код ревью, при необходимости задает дополнительные вопросы.
 +  - (преподаватель) отправляет с ТГ личку студенту сообщение "ФИО ✅ 7️⃣"
 +  - (студент) заходит [[chat-bots:Таблица успеваемости|на страницу успеваемости]] и проверяет корректность своей успеваемости.
 +
  
chat-bots/testing_code_quality.1761720543.txt.gz · Last modified: by olegsklyarov