|
@@ -26,10 +26,13 @@ class DiscoverRunner(object):
|
|
|
make_option('-p', '--pattern', action='store', dest='pattern',
|
|
|
default="test*.py",
|
|
|
help='The test matching pattern. Defaults to test*.py.'),
|
|
|
+ make_option('-k', '--keepdb', action='store_true', dest='keepdb',
|
|
|
+ default=False,
|
|
|
+ help='Preserve the test DB between runs. Defaults to False'),
|
|
|
)
|
|
|
|
|
|
def __init__(self, pattern=None, top_level=None,
|
|
|
- verbosity=1, interactive=True, failfast=False,
|
|
|
+ verbosity=1, interactive=True, failfast=False, keepdb=False,
|
|
|
**kwargs):
|
|
|
|
|
|
self.pattern = pattern
|
|
@@ -38,6 +41,7 @@ class DiscoverRunner(object):
|
|
|
self.verbosity = verbosity
|
|
|
self.interactive = interactive
|
|
|
self.failfast = failfast
|
|
|
+ self.keepdb = keepdb
|
|
|
|
|
|
def setup_test_environment(self, **kwargs):
|
|
|
setup_test_environment()
|
|
@@ -106,7 +110,7 @@ class DiscoverRunner(object):
|
|
|
return reorder_suite(suite, self.reorder_by)
|
|
|
|
|
|
def setup_databases(self, **kwargs):
|
|
|
- return setup_databases(self.verbosity, self.interactive, **kwargs)
|
|
|
+ return setup_databases(self.verbosity, self.interactive, self.keepdb, **kwargs)
|
|
|
|
|
|
def run_suite(self, suite, **kwargs):
|
|
|
return self.test_runner(
|
|
@@ -120,7 +124,7 @@ class DiscoverRunner(object):
|
|
|
"""
|
|
|
old_names, mirrors = old_config
|
|
|
for connection, old_name, destroy in old_names:
|
|
|
- if destroy:
|
|
|
+ if destroy and not self.keepdb:
|
|
|
connection.creation.destroy_test_db(old_name, self.verbosity)
|
|
|
|
|
|
def teardown_test_environment(self, **kwargs):
|
|
@@ -250,7 +254,7 @@ def partition_suite(suite, classes, bins):
|
|
|
bins[-1].addTest(test)
|
|
|
|
|
|
|
|
|
-def setup_databases(verbosity, interactive, **kwargs):
|
|
|
+def setup_databases(verbosity, interactive, keepdb=False, **kwargs):
|
|
|
from django.db import connections, DEFAULT_DB_ALIAS
|
|
|
|
|
|
# First pass -- work out which databases actually need to be created,
|
|
@@ -294,7 +298,7 @@ def setup_databases(verbosity, interactive, **kwargs):
|
|
|
connection = connections[alias]
|
|
|
if test_db_name is None:
|
|
|
test_db_name = connection.creation.create_test_db(
|
|
|
- verbosity, autoclobber=not interactive)
|
|
|
+ verbosity, autoclobber=not interactive, keepdb=keepdb)
|
|
|
destroy = True
|
|
|
else:
|
|
|
connection.settings_dict['NAME'] = test_db_name
|