Ошибка целостности при запуске django тестов с несколькими экземплярами класса TestCase - PullRequest
0 голосов
/ 21 февраля 2020

Тесты, определенные для первого TestCase, выполнены успешно. Тем не менее, для следующего TestCase я получаю ошибку целостности, указывающую, что приборы из предыдущего TestCase не были очищены после запуска теста. Это происходит только с Postgres. Те же тесты успешно работают с SQLite. Если я помещу эти тесты в один класс, они будут успешно выполняться даже с postgres. Будем благодарны за любую помощь в выяснении того, что здесь происходит.

test_run.py :

User = get_user_model()
client = Client()

class DemoTest(TestCase):
    fixtures = ['app1fixture', 'auth', 'app2fixture', 'app3fixture']

    def test_demo(self):
        u = User.objects.create(username='Apple')
        self.assertEqual(u.username, 'Apple')

class DemoTest2(TestCase):
    fixtures = ['app1fixture', 'auth', 'app2fixture', 'app3fixture']

    def test_demo2(self):
        u = User.objects.create(username='Banana')
        self.assertEqual(u.username, 'Banana')

Ошибка :

django.db.utils.IntegrityError: Problem installing fixture '/home/shaily/myapp/app1/fixtures/app1fixture.json': Could not load app1.Profile(pk=1): duplicate key value violates unique constraint "app1_profile_user_id_key" DETAIL: Key (user_id)=(1) already exists.

...