Я хотел проверить что-то, что использует объекты User.
Но по какой-то причине я получаю:
IntegrityError: column user_id is not unique
Я уже несколько секунд стучал головой о стену, и кажется, что я не могу понять, что не так. Сначала я подумал, что, возможно, база данных не размывается между тестами, но я отслеживал User.objects.all(), и это пустой список.
Это тест:
from django.contrib.auth.models import User
from django.test import TestCase
class TestSomething(TestCase):
def test_create_user(self):
User.objects.create_user('foo', '[email protected]', 'bar')
Мои настройки теста:
from settings import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
Update:
Я бы лучше прочитал мои следы соломы. Это фактически следующий сигнал, который вызывает проблему.
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile(user=instance).save()