Тестирование в Django:

Пример запуска Теста (запустить все тесты находящиеся в папке users)

python manage.py test users

или

python3 manage.py test users

Пропустить отделную миграцию ("guides" - это название апликейшена):

python3 manage.py migrate --fake guides 0047_auto_20180307_0756

Или запустить определенную миграцию (ВНИМАНИЕ! ДАННЫЙ КОД МОНОЙ ЕЩЕ НЕ ПРОВЕРЕН):

manage.py migrate myapp 0005_migration_to_run

links

Примеры ТестКейсов (TestCase):

В самом начале создания Тесткейсов необходимо импортировать бибилитоеку:
from django.test import TestCase
После чего можно приступать к созданию тестов.

Проверка статуса страницы

Статус 200 - Все Ок, страница открывается
Статус 302 - Идет редирект

class url_working_capacity (TestCase):

    def test_url_working_capacity (self):

        print("\nTEST #1")

        url = 'http://localhost:8000/en/guides/'
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        print("OK-1")

Залогинивание User'a - Вариант №1 (Через форму на сайте)

data = {'username': self.user#name,
        'password': self.password}
c = Client(enforce_csrf_checks=False)
response = c.post(reverse("account_login"), data, follow=True)
self.assertTrue(response.context["user"].is_authenticated())

Залогинивание User'a - Вариант №2 (програмно)

ccc = Client()
self.assertTrue(ccc.login(username=self.username, password=self.password), True)

Вылогинивание User'a - Вариант №1 (Через ссылку / форму на сайте)

page_logout = 'http://localhost:8000/en/accounts/logout/'
self.response = c.post(page_logout)

Вылогинивание User'a - Вариант №2 (програмно)

c.logout()

Создение User'a - Вариант №1 (програмно) - НО НЕ РАБОТАЕТ ПРИ ЗАЛОГИНИВАНИИ ЧЕРЕЗ ФОРМУ НА САЙТЕ

User.objects.create(username='test-user-2', email='ys.stepanenko@gmail.com', password='1qaz2wsx3edc')
new_user = User.objects.get(username='test-user-2')
print("NEW_USER ===", new_user.email)

Создение User'a - Вариант №2 (програмно) + РАБОТАЕТ ПРИ ЗАЛОГИНИВАНИИ ЧЕРЕЗ ФОРМУ НА САЙТЕ

self.new_user = User.objects.create(username='test-user-2')
self.new_user.set_password('1qaz2wsx3edc')
self.new_user.save()

#CHEK
new_user = User.objects.get(username='test-user-2')
print("NEW_USER ===", new_user)

Обучающие материалы по Тестированию на Django: