私はUserオブジェクトを使用するものをテストしたかったのです。Django:IntegrityError:カラムuser_idが一意ではありません
しかし、私は取得しています何らかの理由:
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'
を更新:
私はシュトラックが少し良くトレース読みください。実際には、問題の原因となっている次の信号です。
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile(user=instance).save()
私はあなたが何とかユーザーの作成をラップし、その信号を取り除くことを試みることができると思います。ラッパーはUserProfileでUserをまだ持っていない場合にそれをフックします。 –