﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
23727	IntegrityError with TransactionTestCase and serialized_rollback=True	Tim Court	Tommy Beadle	"Using a TransactionTestCase with a sqlite database raises an IntegrityError in Django 1.7. This is the error I'm seeing:

{{{
Traceback (most recent call last):
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/test/testcases.py"", line 182, in __call__
    self._pre_setup()
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/test/testcases.py"", line 754, in _pre_setup
    self._fixture_setup()
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/test/testcases.py"", line 797, in _fixture_setup
    connections[db_name]._test_serialized_contents
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/backends/creation.py"", line 428, in deserialize_db_from_string
    obj.save()
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/core/serializers/base.py"", line 173, in save
    models.Model.save_base(self.object, using=using, raw=True)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/models/base.py"", line 618, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/models/base.py"", line 699, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/models/base.py"", line 732, in _do_insert
    using=using, raw=raw)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/models/manager.py"", line 92, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/models/query.py"", line 921, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py"", line 920, in execute_sql
    cursor.execute(sql, params)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/backends/utils.py"", line 65, in execute
    return self.cursor.execute(sql, params)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/utils.py"", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/backends/utils.py"", line 65, in execute
    return self.cursor.execute(sql, params)
  File ""/tmp/djangomigrate/venv/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py"", line 485, in execute
    return Database.Cursor.execute(self, query, params)
IntegrityError: columns app_label, model are not unique
}}}

I can reproduce this behaviour using the default project template, created using startproject and startapp, and nothing more than a single TransactionTestCase with two tests and the `serialized_rollback` option.

Here is a minimal sample project that demonstrates the problem: https://github.com/tctimmeh/djangomigrate. Running `manage.py test mtestapp` results in the error above.

It looks like the django.contrib.contenttypes app has a post-migrate script that populates the content type table. However, using the serialized_rollback option to refresh any migrated data also inserts saved duplicates into the content type table, which results in this exception. "	Bug	closed	Testing framework	1.7	Normal	fixed		khoobks dpoirier@… Louis-Dominique Dubeau	Accepted	1	0	0	0	0	0
