﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
19542	Testing with Oracle: mirror databases do not work	Shai Berger	Shai Berger	"By ""mirror databases"" I here mean two related cases:

 1. A database is explicitly designated as ""TEST_MIRROR"" of another
 2. A database is implicitly a test mirror of another, because they have the same essential parameters

In these cases, the test framework needs to do things a little differently -- create only one database, and make all relevant connections refer to it.

This breaks with Oracle, because setting up test databases there is different from elsewhere. Quoting [https://groups.google.com/d/msg/django-developers/UrQ0Zlfx_rc/-exrMlEVAhkJ myself], 

  The root of the problem is that unlike the other DBMSs, where you can create a new database for testing, Oracle does not have the concept of separate databases within the same server. So, to have a clean schema to work in, the test framework creates a new user (in Oracle there's also a 1-1 correspondence between users and schemas) when it creates the test database. 

  This is all done in the backend-specific `_create_test_db()`. The problem is that this code only takes care of a single db (naturally). There is generic code (in `DjangoTestSuiteRunner.setup_databases()`), that takes care of multiple dbs -- including [...] mirrors. This code isn't aware of the Oracle-specific settings changes. To handle mirrors, it just updates the database name of the mirror to the one set by `_create_test_db()`. In the Oracle case, this is a no-op (`self.connection.settings_dict['NAME']` is not changed); and nobody is left to update the user, password and tablespace parameters, which the backend does change.

Anssi Kääriäinen [https://groups.google.com/d/msg/django-developers/UrQ0Zlfx_rc/3UgRpQUk5aoJ added] that the ""guilty"" line seems to be line 321 of `django/test/simple.py`."	Bug	closed	Testing framework	dev	Normal	fixed	oracle		Accepted	1	0	0	0	0	0
