diff options
| author | Greg Chapple <gregchapple1@gmail.com> | 2014-05-27 22:13:08 +0100 |
|---|---|---|
| committer | Greg Chapple <gregchapple1@gmail.com> | 2014-05-28 16:22:46 +0100 |
| commit | b7aa7c4ab4372d2b7994d252c8bc87f77dd217ae (patch) | |
| tree | 2466569c39afe585f6870dcf26bb9ec42f052c2b /django/test | |
| parent | 2e613ea5c52d4d12e071987178af18c0371d6e2f (diff) | |
Fixed #20550 -- Added ability to preserve test db between runs
Diffstat (limited to 'django/test')
| -rw-r--r-- | django/test/runner.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/django/test/runner.py b/django/test/runner.py index 5eafe35416..68671e6525 100644 --- a/django/test/runner.py +++ b/django/test/runner.py @@ -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 |
