1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +00:00

[soc2009/multidb] Purged all remaining references to DATABASE_* settings and TEST_DATABASE_* settings from the database backends, all of these settings have been moved into dictionaries in the DATABASES setting

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/multidb@10894 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Alex Gaynor 2009-06-03 02:06:40 +00:00
parent 1dc330595c
commit f280c325cd
15 changed files with 83 additions and 88 deletions

View File

@ -28,7 +28,6 @@ that need to be done. I'm trying to be as granular as possible.
4) Rig up the test harness to work with multiple databases. This includes: 4) Rig up the test harness to work with multiple databases. This includes:
* Move all ``TEST_*`` settings to go in ``DATABASE_OPTIONS``.
* Figure out how we can actually test multiple databases. If the user has * Figure out how we can actually test multiple databases. If the user has
more than one database in ``settings.DATABASES`` we can just use the test more than one database in ``settings.DATABASES`` we can just use the test
database for each of them. Otherwise we are going to have to make some database for each of them. Otherwise we are going to have to make some

View File

@ -4,10 +4,13 @@ from django.core.exceptions import ImproperlyConfigured
from django.db.utils import ConnectionHandler, load_backend from django.db.utils import ConnectionHandler, load_backend
from django.utils.functional import curry from django.utils.functional import curry
__all__ = ('backend', 'connection', 'DatabaseError', 'IntegrityError') __all__ = ('backend', 'connection', 'connections', 'DatabaseError',
'IntegrityError', 'DEFAULT_DB_ALIAS')
if not settings.DATABASES or 'default' not in settings.DATABASES: DEFAULT_DB_ALIAS = 'default'
settings.DATABASES['default'] = {
if not settings.DATABASES or DEFAULT_DB_ALIAS not in settings.DATABASES:
settings.DATABASES[DEFAULT_DB_ALIAS] = {
'DATABASE_ENGINE': settings.DATABASE_ENGINE, 'DATABASE_ENGINE': settings.DATABASE_ENGINE,
'DATABASE_HOST': settings.DATABASE_HOST, 'DATABASE_HOST': settings.DATABASE_HOST,
'DATABASE_NAME': settings.DATABASE_NAME, 'DATABASE_NAME': settings.DATABASE_NAME,
@ -16,6 +19,10 @@ if not settings.DATABASES or 'default' not in settings.DATABASES:
'DATABASE_PORT': settings.DATABASE_PORT, 'DATABASE_PORT': settings.DATABASE_PORT,
'DATABASE_USER': settings.DATABASE_USER, 'DATABASE_USER': settings.DATABASE_USER,
'TIME_ZONE': settings.TIME_ZONE, 'TIME_ZONE': settings.TIME_ZONE,
'TEST_DATABASE_CHARSET': settings.TEST_DATABASE_CHARSET,
'TEST_DATABASE_COLLATION': settings.TEST_DATABASE_COLLATION,
'TEST_DATABASE_NAME': settings.TEST_DATABASE_NAME,
} }
connections = ConnectionHandler(settings.DATABASES) connections = ConnectionHandler(settings.DATABASES)

View File

@ -557,7 +557,9 @@ class BaseDatabaseValidation(object):
""" """
This class encapsualtes all backend-specific model validation. This class encapsualtes all backend-specific model validation.
""" """
def __init__(self, connection):
self.connection = connection
def validate_field(self, errors, opts, f): def validate_field(self, errors, opts, f):
"By default, there is no backend-specific validation" "By default, there is no backend-specific validation"
pass pass

View File

@ -321,10 +321,8 @@ class BaseDatabaseCreation(object):
test_database_name = self._create_test_db(verbosity, autoclobber) test_database_name = self._create_test_db(verbosity, autoclobber)
self.connection.close() self.connection.close()
settings.DATABASE_NAME = test_database_name
self.connection.settings_dict["DATABASE_NAME"] = test_database_name self.connection.settings_dict["DATABASE_NAME"] = test_database_name
can_rollback = self._rollback_works() can_rollback = self._rollback_works()
settings.DATABASE_SUPPORTS_TRANSACTIONS = can_rollback
self.connection.settings_dict["DATABASE_SUPPORTS_TRANSACTIONS"] = can_rollback self.connection.settings_dict["DATABASE_SUPPORTS_TRANSACTIONS"] = can_rollback
call_command('syncdb', verbosity=verbosity, interactive=False) call_command('syncdb', verbosity=verbosity, interactive=False)
@ -344,10 +342,10 @@ class BaseDatabaseCreation(object):
"Internal implementation - creates the test db tables." "Internal implementation - creates the test db tables."
suffix = self.sql_table_creation_suffix() suffix = self.sql_table_creation_suffix()
if settings.TEST_DATABASE_NAME: if self.connection.settings_dict['TEST_DATABASE_NAME']:
test_database_name = settings.TEST_DATABASE_NAME test_database_name = self.connection.settings_dict['TEST_DATABASE_NAME']
else: else:
test_database_name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME test_database_name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME']
qn = self.connection.ops.quote_name qn = self.connection.ops.quote_name
@ -399,9 +397,8 @@ class BaseDatabaseCreation(object):
if verbosity >= 1: if verbosity >= 1:
print "Destroying test database..." print "Destroying test database..."
self.connection.close() self.connection.close()
test_database_name = settings.DATABASE_NAME test_database_name = self.connection.settings_dict['DATABASE_NAME']
settings.DATABASE_NAME = old_database_name self.connection.settings_dict['DATABASE_NAME'] = old_database_name
self.connection.settings_dict["DATABASE_NAME"] = old_database_name
self._destroy_test_db(test_database_name, verbosity) self._destroy_test_db(test_database_name, verbosity)
@ -430,4 +427,3 @@ class BaseDatabaseCreation(object):
def sql_table_creation_suffix(self): def sql_table_creation_suffix(self):
"SQL to append to the end of the test table creation statements" "SQL to append to the end of the test table creation statements"
return '' return ''

View File

@ -242,7 +242,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.client = DatabaseClient(self) self.client = DatabaseClient(self)
self.creation = DatabaseCreation(self) self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self) self.introspection = DatabaseIntrospection(self)
self.validation = DatabaseValidation() self.validation = DatabaseValidation(self)
def _valid_connection(self): def _valid_connection(self):
if self.connection is not None: if self.connection is not None:

View File

@ -1,4 +1,3 @@
from django.conf import settings
from django.db.backends.creation import BaseDatabaseCreation from django.db.backends.creation import BaseDatabaseCreation
class DatabaseCreation(BaseDatabaseCreation): class DatabaseCreation(BaseDatabaseCreation):
@ -31,21 +30,21 @@ class DatabaseCreation(BaseDatabaseCreation):
def sql_table_creation_suffix(self): def sql_table_creation_suffix(self):
suffix = [] suffix = []
if settings.TEST_DATABASE_CHARSET: if self.connection.settings_dict['TEST_DATABASE_CHARSET']:
suffix.append('CHARACTER SET %s' % settings.TEST_DATABASE_CHARSET) suffix.append('CHARACTER SET %s' % self.connection.settings_dict['TEST_DATABASE_CHARSET'])
if settings.TEST_DATABASE_COLLATION: if self.connection.settings_dict['TEST_DATABASE_COLLATION']:
suffix.append('COLLATE %s' % settings.TEST_DATABASE_COLLATION) suffix.append('COLLATE %s' % self.connection.settings_dict['TEST_DATABASE_COLLATION'])
return ' '.join(suffix) return ' '.join(suffix)
def sql_for_inline_foreign_key_references(self, field, known_models, style): def sql_for_inline_foreign_key_references(self, field, known_models, style):
"All inline references are pending under MySQL" "All inline references are pending under MySQL"
return [], True return [], True
def sql_for_inline_many_to_many_references(self, model, field, style): def sql_for_inline_many_to_many_references(self, model, field, style):
from django.db import models from django.db import models
opts = model._meta opts = model._meta
qn = self.connection.ops.quote_name qn = self.connection.ops.quote_name
table_output = [ table_output = [
' %s %s %s,' % ' %s %s %s,' %
(style.SQL_FIELD(qn(field.m2m_column_name())), (style.SQL_FIELD(qn(field.m2m_column_name())),
@ -63,4 +62,3 @@ class DatabaseCreation(BaseDatabaseCreation):
field.rel.to._meta.db_table, field.rel.to._meta.pk.column) field.rel.to._meta.db_table, field.rel.to._meta.pk.column)
] ]
return table_output, deferred return table_output, deferred

View File

@ -11,8 +11,7 @@ class DatabaseValidation(BaseDatabaseValidation):
characters if they have a unique index on them. characters if they have a unique index on them.
""" """
from django.db import models from django.db import models
from django.db import connection db_version = self.connection.get_server_version()
db_version = connection.get_server_version()
varchar_fields = (models.CharField, models.CommaSeparatedIntegerField, varchar_fields = (models.CharField, models.CommaSeparatedIntegerField,
models.SlugField) models.SlugField)
if isinstance(f, varchar_fields) and f.max_length > 255: if isinstance(f, varchar_fields) and f.max_length > 255:
@ -25,4 +24,3 @@ class DatabaseValidation(BaseDatabaseValidation):
if msg: if msg:
errors.add(opts, msg % {'name': f.name, 'cls': f.__class__.__name__, 'version': '.'.join([str(n) for n in db_version[:3]])}) errors.add(opts, msg % {'name': f.name, 'cls': f.__class__.__name__, 'version': '.'.join([str(n) for n in db_version[:3]])})

View File

@ -282,7 +282,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.client = DatabaseClient(self) self.client = DatabaseClient(self)
self.creation = DatabaseCreation(self) self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self) self.introspection = DatabaseIntrospection(self)
self.validation = BaseDatabaseValidation() self.validation = BaseDatabaseValidation(self)
def _valid_connection(self): def _valid_connection(self):
return self.connection is not None return self.connection is not None

View File

@ -1,5 +1,4 @@
import sys, time import sys, time
from django.conf import settings
from django.core import management from django.core import management
from django.db.backends.creation import BaseDatabaseCreation from django.db.backends.creation import BaseDatabaseCreation
@ -42,11 +41,11 @@ class DatabaseCreation(BaseDatabaseCreation):
remember = {} remember = {}
def _create_test_db(self, verbosity=1, autoclobber=False): def _create_test_db(self, verbosity=1, autoclobber=False):
TEST_DATABASE_NAME = self._test_database_name(settings) TEST_DATABASE_NAME = self._test_database_name()
TEST_DATABASE_USER = self._test_database_user(settings) TEST_DATABASE_USER = self._test_database_user()
TEST_DATABASE_PASSWD = self._test_database_passwd(settings) TEST_DATABASE_PASSWD = self._test_database_passwd()
TEST_DATABASE_TBLSPACE = self._test_database_tblspace(settings) TEST_DATABASE_TBLSPACE = self._test_database_tblspace()
TEST_DATABASE_TBLSPACE_TMP = self._test_database_tblspace_tmp(settings) TEST_DATABASE_TBLSPACE_TMP = self._test_database_tblspace_tmp()
parameters = { parameters = {
'dbname': TEST_DATABASE_NAME, 'dbname': TEST_DATABASE_NAME,
@ -56,11 +55,11 @@ class DatabaseCreation(BaseDatabaseCreation):
'tblspace_temp': TEST_DATABASE_TBLSPACE_TMP, 'tblspace_temp': TEST_DATABASE_TBLSPACE_TMP,
} }
self.remember['user'] = settings.DATABASE_USER self.remember['user'] = self.connection.settings_dict['DATABASE_USER']
self.remember['passwd'] = settings.DATABASE_PASSWORD self.remember['passwd'] = self.connection.settings_dict['DATABASE_PASSWORD']
cursor = self.connection.cursor() cursor = self.connection.cursor()
if self._test_database_create(settings): if self._test_database_create():
if verbosity >= 1: if verbosity >= 1:
print 'Creating test database...' print 'Creating test database...'
try: try:
@ -84,7 +83,7 @@ class DatabaseCreation(BaseDatabaseCreation):
print "Tests cancelled." print "Tests cancelled."
sys.exit(1) sys.exit(1)
if self._test_user_create(settings): if self._test_user_create():
if verbosity >= 1: if verbosity >= 1:
print "Creating test user..." print "Creating test user..."
try: try:
@ -108,24 +107,24 @@ class DatabaseCreation(BaseDatabaseCreation):
print "Tests cancelled." print "Tests cancelled."
sys.exit(1) sys.exit(1)
settings.TEST_DATABASE_USER = settings.DATABASE_USER = self.connection.settings_dict["DATABASE_USER"] = TEST_DATABASE_USER self.connection.settings_dict['TEST_DATABASE_USER'] = self.connection.settings_dict["DATABASE_USER"] = TEST_DATABASE_USER
settings.DATABASE_PASSWORD = self.connection.settings_dict["DATABASE_PASSWORD"] = TEST_DATABASE_PASSWD self.connection.settings_dict["DATABASE_PASSWORD"] = TEST_DATABASE_PASSWD
return settings.DATABASE_NAME return self.connection.settings_dict['DATABASE_NAME']
def _destroy_test_db(self, test_database_name, verbosity=1): def _destroy_test_db(self, test_database_name, verbosity=1):
""" """
Destroy a test database, prompting the user for confirmation if the Destroy a test database, prompting the user for confirmation if the
database already exists. Returns the name of the test database created. database already exists. Returns the name of the test database created.
""" """
TEST_DATABASE_NAME = self._test_database_name(settings) TEST_DATABASE_NAME = self._test_database_name()
TEST_DATABASE_USER = self._test_database_user(settings) TEST_DATABASE_USER = self._test_database_user()
TEST_DATABASE_PASSWD = self._test_database_passwd(settings) TEST_DATABASE_PASSWD = self._test_database_passwd()
TEST_DATABASE_TBLSPACE = self._test_database_tblspace(settings) TEST_DATABASE_TBLSPACE = self._test_database_tblspace()
TEST_DATABASE_TBLSPACE_TMP = self._test_database_tblspace_tmp(settings) TEST_DATABASE_TBLSPACE_TMP = self._test_database_tblspace_tmp()
settings.DATABASE_USER = self.connection.settings_dict["DATABASE_USER"] = self.remember['user'] self.connection.settings_dict["DATABASE_USER"] = self.remember['user']
settings.DATABASE_PASSWORD = self.connection.settings_dict["DATABASE_PASSWORD"] = self.remember['passwd'] self.connection.settings_dict["DATABASE_PASSWORD"] = self.remember['passwd']
parameters = { parameters = {
'dbname': TEST_DATABASE_NAME, 'dbname': TEST_DATABASE_NAME,
@ -135,16 +134,16 @@ class DatabaseCreation(BaseDatabaseCreation):
'tblspace_temp': TEST_DATABASE_TBLSPACE_TMP, 'tblspace_temp': TEST_DATABASE_TBLSPACE_TMP,
} }
self.remember['user'] = settings.DATABASE_USER self.remember['user'] = self.connection.settings_dict['DATABASE_USER']
self.remember['passwd'] = settings.DATABASE_PASSWORD self.remember['passwd'] = self.connection.settings_dict['DATABASE_PASSWORD']
cursor = self.connection.cursor() cursor = self.connection.cursor()
time.sleep(1) # To avoid "database is being accessed by other users" errors. time.sleep(1) # To avoid "database is being accessed by other users" errors.
if self._test_user_create(settings): if self._test_user_create():
if verbosity >= 1: if verbosity >= 1:
print 'Destroying test user...' print 'Destroying test user...'
self._destroy_test_user(cursor, parameters, verbosity) self._destroy_test_user(cursor, parameters, verbosity)
if self._test_database_create(settings): if self._test_database_create():
if verbosity >= 1: if verbosity >= 1:
print 'Destroying test database tables...' print 'Destroying test database tables...'
self._execute_test_db_destruction(cursor, parameters, verbosity) self._execute_test_db_destruction(cursor, parameters, verbosity)
@ -208,10 +207,10 @@ class DatabaseCreation(BaseDatabaseCreation):
raise raise
def _test_database_name(self, settings): def _test_database_name(self, settings):
name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME']
try: try:
if settings.TEST_DATABASE_NAME: if self.connection.settings_dict['TEST_DATABASE_NAME']:
name = settings.TEST_DATABASE_NAME name = self.connection.settings_dict['TEST_DATABASE_NAME']
except AttributeError: except AttributeError:
pass pass
except: except:
@ -221,11 +220,11 @@ class DatabaseCreation(BaseDatabaseCreation):
def _test_database_create(self, settings): def _test_database_create(self, settings):
name = True name = True
try: try:
if settings.TEST_DATABASE_CREATE: if self.connection.setting_dict['TEST_DATABASE_CREATE']:
name = True name = True
else: else:
name = False name = False
except AttributeError: except KeyError:
pass pass
except: except:
raise raise
@ -234,32 +233,32 @@ class DatabaseCreation(BaseDatabaseCreation):
def _test_user_create(self, settings): def _test_user_create(self, settings):
name = True name = True
try: try:
if settings.TEST_USER_CREATE: if self.connection.settings_dict['TEST_USER_CREATE']:
name = True name = True
else: else:
name = False name = False
except AttributeError: except KeyError:
pass pass
except: except:
raise raise
return name return name
def _test_database_user(self, settings): def _test_database_user(self):
name = TEST_DATABASE_PREFIX + settings.DATABASE_USER name = TEST_DATABASE_PREFIX + self.settings_dict['DATABASE_USER']
try: try:
if settings.TEST_DATABASE_USER: if self.connection.settings_dict['TEST_DATABASE_USER']:
name = settings.TEST_DATABASE_USER name = self.connection.settings_dict['TEST_DATABASE_USER']
except AttributeError: except AttributeError:
pass pass
except: except:
raise raise
return name return name
def _test_database_passwd(self, settings): def _test_database_passwd(self):
name = PASSWORD name = PASSWORD
try: try:
if settings.TEST_DATABASE_PASSWD: if self.connection.settings_dict['TEST_DATABASE_PASSWD']:
name = settings.TEST_DATABASE_PASSWD name = self.connection.settings_dict['TEST_DATABASE_PASSWD']
except AttributeError: except AttributeError:
pass pass
except: except:
@ -267,10 +266,10 @@ class DatabaseCreation(BaseDatabaseCreation):
return name return name
def _test_database_tblspace(self, settings): def _test_database_tblspace(self, settings):
name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME']
try: try:
if settings.TEST_DATABASE_TBLSPACE: if self.connection.settings_dict['TEST_DATABASE_TBLSPACE']:
name = settings.TEST_DATABASE_TBLSPACE name = self.connection.settings_dict['TEST_DATABASE_TBLSPACE']
except AttributeError: except AttributeError:
pass pass
except: except:
@ -278,10 +277,10 @@ class DatabaseCreation(BaseDatabaseCreation):
return name return name
def _test_database_tblspace_tmp(self, settings): def _test_database_tblspace_tmp(self, settings):
name = TEST_DATABASE_PREFIX + settings.DATABASE_NAME + '_temp' name = TEST_DATABASE_PREFIX + self.connection.settings_dict['DATABASE_NAME'] + '_temp'
try: try:
if settings.TEST_DATABASE_TBLSPACE_TMP: if self.connection.settings_dict['TEST_DATABASE_TBLSPACE_TMP']:
name = settings.TEST_DATABASE_TBLSPACE_TMP name = self.connection.settings_dict['TEST_DATABASE_TBLSPACE_TMP']
except AttributeError: except AttributeError:
pass pass
except: except:

View File

@ -94,7 +94,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.client = DatabaseClient(self) self.client = DatabaseClient(self)
self.creation = DatabaseCreation(self) self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self) self.introspection = DatabaseIntrospection(self)
self.validation = BaseDatabaseValidation() self.validation = BaseDatabaseValidation(self)
def _cursor(self): def _cursor(self):
set_tz = False set_tz = False

View File

@ -1,4 +1,3 @@
from django.conf import settings
from django.db.backends.creation import BaseDatabaseCreation from django.db.backends.creation import BaseDatabaseCreation
class DatabaseCreation(BaseDatabaseCreation): class DatabaseCreation(BaseDatabaseCreation):
@ -30,7 +29,7 @@ class DatabaseCreation(BaseDatabaseCreation):
} }
def sql_table_creation_suffix(self): def sql_table_creation_suffix(self):
assert settings.TEST_DATABASE_COLLATION is None, "PostgreSQL does not support collation setting at database creation time." assert self.connection.settings_dict['TEST_DATABASE_COLLATION'] is None, "PostgreSQL does not support collation setting at database creation time."
if settings.TEST_DATABASE_CHARSET: if self.connection.settings_dict['TEST_DATABASE_CHARSET']:
return "WITH ENCODING '%s'" % settings.TEST_DATABASE_CHARSET return "WITH ENCODING '%s'" % self.connection.settings_dict['TEST_DATABASE_CHARSET']
return '' return ''

View File

@ -4,7 +4,6 @@ PostgreSQL database backend for Django.
Requires psycopg 2: http://initd.org/projects/psycopg2 Requires psycopg 2: http://initd.org/projects/psycopg2
""" """
from django.conf import settings
from django.db.backends import * from django.db.backends import *
from django.db.backends.signals import connection_created from django.db.backends.signals import connection_created
from django.db.backends.postgresql.operations import DatabaseOperations as PostgresqlDatabaseOperations from django.db.backends.postgresql.operations import DatabaseOperations as PostgresqlDatabaseOperations
@ -71,7 +70,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.client = DatabaseClient(self) self.client = DatabaseClient(self)
self.creation = DatabaseCreation(self) self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self) self.introspection = DatabaseIntrospection(self)
self.validation = BaseDatabaseValidation() self.validation = BaseDatabaseValidation(self)
def _cursor(self): def _cursor(self):
set_tz = False set_tz = False
@ -150,4 +149,3 @@ class DatabaseWrapper(BaseDatabaseWrapper):
finally: finally:
self.isolation_level = level self.isolation_level = level
self.features.uses_savepoints = bool(level) self.features.uses_savepoints = bool(level)

View File

@ -154,7 +154,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.client = DatabaseClient(self) self.client = DatabaseClient(self)
self.creation = DatabaseCreation(self) self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self) self.introspection = DatabaseIntrospection(self)
self.validation = BaseDatabaseValidation() self.validation = BaseDatabaseValidation(self)
def _cursor(self): def _cursor(self):
if self.connection is None: if self.connection is None:

View File

@ -1,6 +1,5 @@
import os import os
import sys import sys
from django.conf import settings
from django.db.backends.creation import BaseDatabaseCreation from django.db.backends.creation import BaseDatabaseCreation
class DatabaseCreation(BaseDatabaseCreation): class DatabaseCreation(BaseDatabaseCreation):
@ -29,7 +28,7 @@ class DatabaseCreation(BaseDatabaseCreation):
'TextField': 'text', 'TextField': 'text',
'TimeField': 'time', 'TimeField': 'time',
} }
def sql_for_pending_references(self, model, style, pending_references): def sql_for_pending_references(self, model, style, pending_references):
"SQLite3 doesn't support constraints" "SQLite3 doesn't support constraints"
return [] return []
@ -37,10 +36,10 @@ class DatabaseCreation(BaseDatabaseCreation):
def sql_remove_table_constraints(self, model, references_to_delete, style): def sql_remove_table_constraints(self, model, references_to_delete, style):
"SQLite3 doesn't support constraints" "SQLite3 doesn't support constraints"
return [] return []
def _create_test_db(self, verbosity, autoclobber): def _create_test_db(self, verbosity, autoclobber):
if settings.TEST_DATABASE_NAME and settings.TEST_DATABASE_NAME != ":memory:": test_database_name = self.connection.settings_dict['TEST_DATABASE_NAME']
test_database_name = settings.TEST_DATABASE_NAME if test_database_name and test_database_name != ":memory:":
# Erase the old test database # Erase the old test database
if verbosity >= 1: if verbosity >= 1:
print "Destroying old test database..." print "Destroying old test database..."
@ -63,7 +62,7 @@ class DatabaseCreation(BaseDatabaseCreation):
else: else:
test_database_name = ":memory:" test_database_name = ":memory:"
return test_database_name return test_database_name
def _destroy_test_db(self, test_database_name, verbosity): def _destroy_test_db(self, test_database_name, verbosity):
if test_database_name and test_database_name != ":memory:": if test_database_name and test_database_name != ":memory:":
# Remove the SQLite database file # Remove the SQLite database file

View File

@ -436,7 +436,7 @@ class TestCase(TransactionTestCase):
""" """
def _fixture_setup(self): def _fixture_setup(self):
if not settings.DATABASE_SUPPORTS_TRANSACTIONS: if not connection.settings_dict['DATABASE_SUPPORTS_TRANSACTIONS']:
return super(TestCase, self)._fixture_setup() return super(TestCase, self)._fixture_setup()
transaction.enter_transaction_management() transaction.enter_transaction_management()
@ -453,7 +453,7 @@ class TestCase(TransactionTestCase):
}) })
def _fixture_teardown(self): def _fixture_teardown(self):
if not settings.DATABASE_SUPPORTS_TRANSACTIONS: if not connection.settings_dict['DATABASE_SUPPORTS_TRANSACTIONS']:
return super(TestCase, self)._fixture_teardown() return super(TestCase, self)._fixture_teardown()
restore_transaction_methods() restore_transaction_methods()