Покрытие тестами проекта Yatube из спринта 4 Питон-разработчика бекенда Яндекс.Практикум. Все что нужно, это покрыть тестами проект, в учебных целях.
Стек (обновить):
- Python 3.12
- asgiref==3.8.1
- certifi==2025.1.31
- charset-normalizer==3.4.1
- django==5.1.6
- django-debug-toolbar==5.0.1
- django-environ==0.12.0
- faker==12.0.1
- idna==3.10
- iniconfig==2.0.0
- mixer==7.2.2
- packaging==24.2
- pillow==11.1.0
- pluggy==1.5.0
- pytest==8.3.4
- pytest-django==4.9.0
- pytest-pythonpath==0.7.3
- python-dateutil==2.9.0.post0
- requests==2.32.3
- six==1.17.0
- sorl-thumbnail==12.11.0
- sqlparse==0.5.3
- urllib3==2.3.0
Клонируем проект:
git clone https://github.com/themasterid/hw04_tests.gitили
git clone git@github.com:themasterid/hw04_tests.gitПереходим в папку с проектом:
cd hw04_testsУстанавливаем виртуальное окружение:
uv venvАктивируем виртуальное окружение:
source .venv/bin/activateДля деактивации виртуального окружения выполним (после работы):
deactivate
Устанавливаем зависимости:
uv pip install -r requirements.txtПрименяем миграции:
python3 yatube/manage.py makemigrations
python3 yatube/manage.py migrateСоздаем супер пользователя:
python3 yatube/manage.py createsuperuserПри желании делаем коллекцию статики:
python3 yatube/manage.py collectstaticПредварительно сняв комментарий с:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')И закомментировав:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]Иначе получим ошибку: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
В папку с проектом, где файл settings.py добавляем файл .env куда прописываем наши параметры:
SECRET_KEY='Ваш секретный ключ'
ALLOWED_HOSTS='127.0.0.1, localhost'
DEBUG=TrueНе забываем добавить в .gitingore файлы:
.env
.venvДля запуска тестов выполним:
pytestПолучим:
pytest
ОТРЕДАКТИРОВАТЬ ПОСЛЕ УСТРАНЕНИЯ
FAILED tests/test_create.py::TestCreateView::test_create_view_get - AssertionError: Проверьте, чт...
FAILED tests/test_homework.py::TestGroupView::test_group_view - AssertionError: Отредактируйте HT...
FAILED tests/test_post.py::TestPostEditView::test_post_edit_view_author_get - AssertionError: Про...
============================ 3 failed, 17 passed, 33 warnings in 2.98s ============================ Запускаем проект:
python3 yatube/manage.py runserver localhost:80После чего проект будет доступен по адресу http://localhost/
Заходим в http://localhost/admin и создаем группы и записи. После чего записи и группы появятся на главной странице.
Автор: Дмитрий Клепиков 👍