Fixed #14921 -- Tweak changes made in r14861 for the Oracle backend so the test runner can actually create the test DB. Thanks Karen for the report.

In Oracle, the name of a DB as handled by Django hasn't a counterpart anyway. So use the 'production DB name' as it was done before.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14993 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Ramiro Morales 2010-12-21 01:36:09 +00:00
parent df6ad35c56
commit c2657d8923
2 changed files with 11 additions and 3 deletions

View File

@ -374,7 +374,7 @@ class BaseDatabaseCreation(object):
def _get_test_db_name(self): def _get_test_db_name(self):
""" """
Internal implementation - returns the name of the test DB that wll be Internal implementation - returns the name of the test DB that will be
created. Only useful when called from create_test_db() and created. Only useful when called from create_test_db() and
_create_test_db() and when no external munging is done with the 'NAME' _create_test_db() and when no external munging is done with the 'NAME'
or 'TEST_NAME' settings. or 'TEST_NAME' settings.

View File

@ -43,7 +43,7 @@ class DatabaseCreation(BaseDatabaseCreation):
super(DatabaseCreation, self).__init__(connection) super(DatabaseCreation, self).__init__(connection)
def _create_test_db(self, verbosity=1, autoclobber=False): def _create_test_db(self, verbosity=1, autoclobber=False):
TEST_NAME = self._get_test_db_name() TEST_NAME = self._test_database_name()
TEST_USER = self._test_database_user() TEST_USER = self._test_database_user()
TEST_PASSWD = self._test_database_passwd() TEST_PASSWD = self._test_database_passwd()
TEST_TBLSPACE = self._test_database_tblspace() TEST_TBLSPACE = self._test_database_tblspace()
@ -201,7 +201,7 @@ class DatabaseCreation(BaseDatabaseCreation):
sys.stderr.write("Failed (%s)\n" % (err)) sys.stderr.write("Failed (%s)\n" % (err))
raise raise
def _get_test_db_name(self): def _test_database_name(self):
name = TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME'] name = TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME']
try: try:
if self.connection.settings_dict['TEST_NAME']: if self.connection.settings_dict['TEST_NAME']:
@ -251,3 +251,11 @@ class DatabaseCreation(BaseDatabaseCreation):
except KeyError: except KeyError:
pass pass
return name return name
def _get_test_db_name(self):
"""
We need to return the 'production' DB name to get the test DB creation
machinery to work. This isn't a great deal in this case because DB
names as handled by Django haven't real counterparts in Oracle.
"""
return self.connection.settings_dict['NAME']