Delegate to DB backends the task of detecting when different DATABASES item values point to different RDBMS test DBs
In r14696/r14822 we fixed the ability to detect and handle without data loss database definitions that point to the same RDBMS database when setting up/tearing down tests.
The tuple of values used to distinguish among them contains (HOST, PORT ENGINE, NAME). In Oracle test setup all these values can be identical among two DATABASES item values but still point to different databases (actually tablespaces, in the Oracle nomenclature), even further, they usually will be the same when using a single Oracle installation. Shai also hinted about MS SQL possible needing more variables in the mix for similar reasons.
The patch attached to this ticket moves that to a method of BaseDatabaseCreation so it can be customized by the backends that need this. This reduces again the number of test suite failures happening in Oracle (currently, tests that assume the default and other databases are mutually isolated do fail.)
I tested the patch out with Oracle. It corrected 2000 errors and did not appear to be causing any new failures.
I suggest though that the Oracle backend should differentiate on TEST_USER rather than TEST_TBLSPACE. That we require TEST_TBLSPACE to be different is an implementation detail, and in fact it's probably possible to configure a test settings module that uses the same tablespace for both connections by disabling the TEST_CREATE option. The necessary distinction is that the connections are made to different schemas, as indicated by TEST_USER.