[1.5.x] Fixed #19192 -- Allowed running tests with dummy db backend

Thanks Simon Charette for the initial patch, and Jan Bednařík for
his work on the ticket.
Backport of b740da3504 from master.
This commit is contained in:
Claude Paroz 2013-01-04 13:55:20 +01:00
parent b641357a37
commit 96301d21bb
3 changed files with 24 additions and 1 deletions

View File

@ -125,6 +125,7 @@ answer newbie questions, and generally made Django that much better:
Chris Chamberlin <dja@cdc.msbx.net>
Amit Chakradeo <http://amit.chakradeo.net/>
ChaosKCW
Simon Charette <charette.s@gmail.com>
Kowito Charoenratchatabhan <kowito@felspar.com>
Sengtha Chay <sengtha@e-khmer.com>
ivan.chelubeev@gmail.com

View File

@ -31,6 +31,10 @@ class DatabaseOperations(BaseDatabaseOperations):
class DatabaseClient(BaseDatabaseClient):
runshell = complain
class DatabaseCreation(BaseDatabaseCreation):
create_test_db = ignore
destroy_test_db = ignore
class DatabaseIntrospection(BaseDatabaseIntrospection):
get_table_list = complain
get_table_description = complain
@ -64,6 +68,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.features = BaseDatabaseFeatures(self)
self.ops = DatabaseOperations(self)
self.client = DatabaseClient(self)
self.creation = BaseDatabaseCreation(self)
self.creation = DatabaseCreation(self)
self.introspection = DatabaseIntrospection(self)
self.validation = BaseDatabaseValidation(self)

View File

@ -261,6 +261,24 @@ class Sqlite3InMemoryTestDbs(unittest.TestCase):
db.connections = old_db_connections
class DummyBackendTest(unittest.TestCase):
def test_setup_databases(self):
"""
Test that setup_databases() doesn't fail with dummy database backend.
"""
runner = DjangoTestSuiteRunner(verbosity=0)
old_db_connections = db.connections
try:
db.connections = db.ConnectionHandler({})
old_config = runner.setup_databases()
runner.teardown_databases(old_config)
except Exception as e:
self.fail("setup_databases/teardown_databases unexpectedly raised "
"an error: %s" % e)
finally:
db.connections = old_db_connections
class AutoIncrementResetTest(TransactionTestCase):
"""
Here we test creating the same model two times in different test methods,