1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

Fixed #25251 -- Made data migrations available in TransactionTestCase when using --keepdb.

Data loaded in migrations were restored at the beginning of each
TransactionTestCase and all the tables are truncated at the end of
these test cases. If there was a TransactionTestCase at the end of
the test suite, the migrated data weren't restored in the database
(especially unexpected when using --keepdb). Now data is restored
at the end of each TransactionTestCase.
This commit is contained in:
romgar
2016-11-07 22:08:40 +00:00
committed by Tim Graham
parent ecac6d7a2a
commit b3b1d3d45f
9 changed files with 217 additions and 15 deletions

View File

@@ -777,6 +777,11 @@ the database state between tests if you don't have transactions). You can set
this to ``False`` to speed up creation time if you don't have any test classes
with :ref:`serialized_rollback=True <test-case-serialized-rollback>`.
Don't set this to ``False`` if you want to use :option:`test --keepdb`
and your test suite contains :class:`~django.test.TransactionTestCase` or
doesn't support transactions, as this in-memory JSON string is used to restore
the initial data migrations in these situations.
.. setting:: TEST_TEMPLATE
``TEMPLATE``

View File

@@ -298,6 +298,17 @@ Database backend API
* Support for GDAL 1.9 and 1.10 is dropped.
``TransactionTestCase`` serialized data loading
-----------------------------------------------
Initial data migrations are now loaded in
:class:`~django.test.TransactionTestCase` at the end of the test, after the
database flush. In older versions, this data was loaded at the beginning of the
test, but this prevents the :option:`test --keepdb` option from working
properly (the database was empty at the end of the whole test suite). This
change shouldn't have an impact on your tests unless you've customized
:class:`~django.test.TransactionTestCase`'s internals.
Miscellaneous
-------------