Opened 8 years ago
Closed 8 years ago
#28895 closed Bug (duplicate)
serialized_rollback = True causes an IntgrityError in LiveServerTestCase
| Reported by: | Lyra2108 | Owned by: | nobody |
|---|---|---|---|
| Component: | Testing framework | Version: | 1.8 |
| Severity: | Normal | Keywords: | LiveServerTestCase |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Hey,
the project I am working on creates a set of required objects e.g. Groups,... within the database migrations. I would like this data also do be present, when I use LiveServerTestCases. But if I run the simple example below the 2nd test fails while the first is successful.
If serialized_rollback = False, the tests fails like expected with a "DoesNotExist: Group matching query does not exist." exception.
But if it is set to True, the exception changes to an integrity exception:
IntegrityError: duplicate key value violates unique constraint "django_content_type_app_label_45f3b1d93ec8c61c_uniq" DETAIL: Key (app_label, model)=(contenttypes, contenttype) already exists.
Testcase:
from django.conf import settings
from django.contrib.auth.models import Group
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
class Test(StaticLiveServerTestCase):
serialized_rollback = True
@classmethod
def setUpClass(cls):
super(Test, cls).setUpClass()
@classmethod
def tearDownClass(cls):
super(Test, cls).tearDownClass()
def test_abc(self):
group = Group.objects.get(name='groupname')
assert group
def test_def(self):
group = Group.objects.get(name='groupname')
assert group
Duplicate of #23727. Fixed in Django 1.9+ by d3fdaf907db6a5be4d0391532d7e65688c19e851. In the future, please try to verify bugs against the most recent Django release.