Skip to content

voven007/django_testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Django testing

Описание проекта.

Основная цель данного проекта - это практика в написании тестов. Я реализовала тесты для двух небольших проектов – для сервиса с заметками пользователей (тестировала на unittest) и для новостного сайта (использовала pytest).

Стек

  • Django
  • Unittest
  • Pytest

Для удобства навигации ниже представлена структура проекта с локализацией тестов

Dev
 └── django_testing
     ├── ya_news
     │   ├── news
     │   │   ├── fixtures/
     │   │   ├── migrations/
     │   │   ├── pytest_tests/   <- Директория с тестами pytest для проекта ya_news
     │   │   ├── __init__.py
     │   │   ├── admin.py
     │   │   ├── apps.py
     │   │   ├── forms.py
     │   │   ├── models.py
     │   │   ├── urls.py
     │   │   └── views.py
     │   ├── templates/
     │   ├── yanews/
     │   ├── manage.py
     │   └── pytest.ini
     ├── ya_note
     │   ├── notes
     │   │   ├── migrations/
     │   │   ├── tests/          <- Директория с тестами unittest для проекта ya_note
     │   │   ├── __init__.py
     │   │   ├── admin.py
     │   │   ├── apps.py
     │   │   ├── forms.py
     │   │   ├── models.py
     │   │   ├── urls.py
     │   │   └── views.py
     │   ├── templates/
     │   ├── yanote/
     │   ├── manage.py
     │   └── pytest.ini
     ├── .gitignore
     ├── README.md
     ├── requirements.txt
     └── structure_test.py

Структура и содержание тестов

Тесты на unittest для проекта YaNote:

В файле test_routes.py:

  • Главная страница доступна анонимному пользователю.
  • Аутентифицированному пользователю доступна страница со списком заметок notes/, страница успешного добавления заметки done/, страница добавления новой заметки add/.
  • Страницы отдельной заметки, удаления и редактирования заметки доступны только автору заметки. Если на эти страницы попытается зайти другой пользователь — вернётся ошибка 404.
  • При попытке перейти на страницу списка заметок, страницу успешного добавления записи, страницу добавления заметки, отдельной заметки, редактирования или удаления заметки анонимный пользователь перенаправляется на страницу логина.
  • Страницы регистрации пользователей, входа в учётную запись и выхода из неё доступны всем пользователям.

В файле test_content.py:

  • Отдельная заметка передаётся на страницу со списком заметок в списке object_list в словаре context.
  • В список заметок одного пользователя не попадают заметки другого пользователя.
  • На страницы создания и редактирования заметки передаются формы.

В файле test_logic.py:

  • Залогиненный пользователь может создать заметку, а анонимный — не может.
  • Невозможно создать две заметки с одинаковым slug.
  • Если при создании заметки не заполнен slug, то он формируется автоматически, с помощью функции pytils.translit.slugify.
  • Пользователь может редактировать и удалять свои заметки, но не может редактировать или удалять чужие.

Тесты на pytest для проекта YaNews:

В файле test_routes.py:

  • Главная страница доступна анонимному пользователю.
  • Страница отдельной новости доступна анонимному пользователю.
  • Страницы удаления и редактирования комментария доступны автору комментария.
  • При попытке перейти на страницу редактирования или удаления комментария анонимный пользователь перенаправляется на страницу авторизации.
  • Авторизованный пользователь не может зайти на страницы редактирования или удаления чужих комментариев (возвращается ошибка 404).
  • Страницы регистрации пользователей, входа в учётную запись и выхода из неё доступны анонимным пользователям.

В файле test_content.py:

  • Количество новостей на главной странице — не более 10.
  • Новости отсортированы от самой свежей к самой старой. Свежие новости в начале списка.
  • Комментарии на странице отдельной новости отсортированы в хронологическом порядке: старые в начале списка, новые — в конце.
  • Анонимному пользователю недоступна форма для отправки комментария на странице отдельной новости, а авторизованному доступна.

В файле test_logic.py:

  • Анонимный пользователь не может отправить комментарий.
  • Авторизованный пользователь может отправить комментарий.
  • Если комментарий содержит запрещённые слова, он не будет опубликован, а форма вернёт ошибку.
  • Авторизованный пользователь может редактировать или удалять свои комментарии.
  • Авторизованный пользователь не может редактировать или удалять чужие комментарии.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published