summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-06-09 14:14:58 -0400
committerTim Graham <timograham@gmail.com>2014-06-09 14:43:13 -0400
commit11f0bdc00757e5646337633f6a045b085f0653b2 (patch)
tree97acb016a453dd095197afcfc68692fd1a1e6aec
parent7406feae33b70319c6e3a3edcd40e863692d29ed (diff)
[1.7.x] Added rollback emulation to spatialite backend; refs #22487.
Backport of 6b97ae3521 from master
-rw-r--r--django/contrib/gis/db/backends/spatialite/creation.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/django/contrib/gis/db/backends/spatialite/creation.py b/django/contrib/gis/db/backends/spatialite/creation.py
index 8cadef9f9c..a2ebb125ee 100644
--- a/django/contrib/gis/db/backends/spatialite/creation.py
+++ b/django/contrib/gis/db/backends/spatialite/creation.py
@@ -7,7 +7,7 @@ from django.db.backends.sqlite3.creation import DatabaseCreation
class SpatiaLiteCreation(DatabaseCreation):
- def create_test_db(self, verbosity=1, autoclobber=False):
+ def create_test_db(self, verbosity=1, autoclobber=False, serialize=True):
"""
Creates a test database, prompting the user for confirmation if the
database already exists. Returns the name of the test database created.
@@ -43,6 +43,13 @@ class SpatiaLiteCreation(DatabaseCreation):
database=self.connection.alias,
load_initial_data=False)
+ # We then serialize the current state of the database into a string
+ # and store it on the connection. This slightly horrific process is so people
+ # who are testing on databases without transactions or who are using
+ # a TransactionTestCase still get a clean database on every test run.
+ if serialize:
+ self.connection._test_serialized_contents = self.serialize_db_to_string()
+
# We need to then do a flush to ensure that any data installed by
# custom SQL has been removed. The only test data should come from
# test fixtures, or autogenerated from post_migrate triggers.