我想測試一些使用User對象的東西。Django:IntegrityError:column 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'
更新:
我應該讀我的痕跡STRACK好一點。它實際上是導致問題的以下信號。
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile(user=instance).save()
我想你可以嘗試以某種方式包裝用戶創建並擺脫該信號。如果包裝器還沒有UserProfile,它將處理連接User。 –