Я хотел протестировать что-то, что использует объекты 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', 'foo@bar', 'bar')
Мои настройки теста:
from settings import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
Обновление:
Я должен прочитатьмой след немного лучше.Это на самом деле следующий сигнал, который вызывает проблему.
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile(user=instance).save()