Próbuję uruchomić następujący Django unittest:Testowanie kilku IntegrityErrors w tym samym Django unittest testowym przypadku
class MyModelTests(TestCase):
def test_failed_duplicate(self):
m = MyModel.objects.create(a='a', b='a')
with self.assertRaises(IntegrityError):
MyModel.objects.create(a='a', b='b')
with self.assertRaises(IntegrityError):
MyModel.objects.create(a='a', b='c')
with self.assertRaises(IntegrityError):
MyModel.objects.create(a='a', b='d')
Istnieje kilka testów, aby wszyscy nie ze względu na złamanie ograniczenia unikatowości na polu a
. (. Mam ukrywane twierdzenia trochę, ale wszystkie one przetestować różne wartości a
że nie uda)
Jednak po uruchomieniu pojawia się:
Traceback (most recent call last):
File "...", line 21, in test_failed_duplicate
MyModel.objects.create(a='a', b='c')
TransactionManagementError: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block.
Czego mi brakuje?
Idealnie! Dzięki :) –
Bardzo przydatne. Dzięki. – freethebees