[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> Chris Chamberlin <dja@cdc.msbx.net>
Amit Chakradeo <http://amit.chakradeo.net/> Amit Chakradeo <http://amit.chakradeo.net/>
ChaosKCW ChaosKCW
Simon Charette <charette.s@gmail.com>
Kowito Charoenratchatabhan <kowito@felspar.com> Kowito Charoenratchatabhan <kowito@felspar.com>
Sengtha Chay <sengtha@e-khmer.com> Sengtha Chay <sengtha@e-khmer.com>
ivan.chelubeev@gmail.com ivan.chelubeev@gmail.com

View File

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

View File

@ -261,6 +261,24 @@ class Sqlite3InMemoryTestDbs(unittest.TestCase):
db.connections = old_db_connections 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): class AutoIncrementResetTest(TransactionTestCase):
""" """
Here we test creating the same model two times in different test methods, Here we test creating the same model two times in different test methods,