Я сейчас пытаюсь написать свои первые спецификации Django для приложения. Однако каждый раз, когда я запускаю тесты, я получаю IntegrityError: UNIQUE constraint failed: auth_user.username
из-за пользователя, которого я создал в предыдущем запуске теста, который теперь существует в базе данных.
У меня сложилось впечатление, что TestCase включает тестовый код в транзакцию базы данных, чтобы все данные, созданные во время теста, откатывались по завершении? Что я тут не так делаю?
from django.test import TestCase
from django.contrib.auth.models import User
from basic.models import SavedModels
# Create your tests here.
class SavedModelsTestCase(TestCase):
User.objects.create(username="user_001",
password="useruser",
first_name="Test",
last_name="User",
email="test_user@test.com"
)
user = User.objects.filter(username="user_001")
saved_model = SavedModels.objects.create(name="Test Model",
description="A model",
user=user
)
def test_saved_models(self):
saved_model = create_saved_model()
self.assertTrue(isinstance(saved_model, SavedModels))
self.assertEqual(saved_model.name, "Test Model")
self.assertEqual(saved_model.description, "A model")
self.assertEqual(saved_model.user, user)