Fixed #27078 -- Simplified "if" logic in SQLite's _get_test_db_name().

This commit is contained in:
Chris Jerdonek 2016-08-17 13:20:01 -07:00 committed by Tim Graham
parent e76981b433
commit 49fcbe73c5
1 changed files with 11 additions and 10 deletions

View File

@ -12,17 +12,18 @@ class DatabaseCreation(BaseDatabaseCreation):
def _get_test_db_name(self):
test_database_name = self.connection.settings_dict['TEST']['NAME']
can_share_in_memory_db = self.connection.features.can_share_in_memory_db
if test_database_name and test_database_name != ':memory:':
if 'mode=memory' in test_database_name and not can_share_in_memory_db:
raise ImproperlyConfigured(
"Using a shared memory database with `mode=memory` in the "
"database name is not supported in your environment, "
"use `:memory:` instead."
)
return test_database_name
if not test_database_name:
test_database_name = ':memory:'
if can_share_in_memory_db:
return 'file:memorydb_%s?mode=memory&cache=shared' % self.connection.alias
return ':memory:'
if test_database_name == ':memory:':
return 'file:memorydb_%s?mode=memory&cache=shared' % self.connection.alias
elif 'mode=memory' in test_database_name:
raise ImproperlyConfigured(
"Using a shared memory database with `mode=memory` in the "
"database name is not supported in your environment, "
"use `:memory:` instead."
)
return test_database_name
def _create_test_db(self, verbosity, autoclobber, keepdb=False):
test_database_name = self._get_test_db_name()