From c2657d892396c51448432637a855eb9ecac5363c Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Tue, 21 Dec 2010 01:36:09 +0000 Subject: [PATCH] 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 --- django/db/backends/creation.py | 2 +- django/db/backends/oracle/creation.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py index b6379df4c1..3ba8922a31 100644 --- a/django/db/backends/creation.py +++ b/django/db/backends/creation.py @@ -374,7 +374,7 @@ class BaseDatabaseCreation(object): 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 _create_test_db() and when no external munging is done with the 'NAME' or 'TEST_NAME' settings. diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py index 8a4458b310..bda70397c2 100644 --- a/django/db/backends/oracle/creation.py +++ b/django/db/backends/oracle/creation.py @@ -43,7 +43,7 @@ class DatabaseCreation(BaseDatabaseCreation): super(DatabaseCreation, self).__init__(connection) 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_PASSWD = self._test_database_passwd() TEST_TBLSPACE = self._test_database_tblspace() @@ -201,7 +201,7 @@ class DatabaseCreation(BaseDatabaseCreation): sys.stderr.write("Failed (%s)\n" % (err)) raise - def _get_test_db_name(self): + def _test_database_name(self): name = TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME'] try: if self.connection.settings_dict['TEST_NAME']: @@ -251,3 +251,11 @@ class DatabaseCreation(BaseDatabaseCreation): except KeyError: pass 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']