Skip to content

Commit

Permalink
support case for trash db_url
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierre Tardy committed Feb 19, 2015
1 parent 0c1a59d commit 2196751
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 4 deletions.
8 changes: 6 additions & 2 deletions master/buildbot/db/dbconfig.py
Expand Up @@ -50,8 +50,12 @@ def __init__(self, BuildmasterConfig, basedir, name="config"):
self.name = name

def getDb(self):
db_engine = enginestrategy.create_engine(self.db_url,
basedir=self.basedir)
try:
db_engine = enginestrategy.create_engine(self.db_url,
basedir=self.basedir)
except Exception:
# db_url is probably trash. Just ignore, config.py db part will create proper message
return None
db = FakeDBConnector()
db.master = FakeMaster()
db.pool = FakePool()
Expand Down
25 changes: 23 additions & 2 deletions master/buildbot/test/unit/test_db_dbconfig.py
Expand Up @@ -77,8 +77,8 @@ def setUp(self):
# as we will open the db twice, we can't use in memory sqlite
yield self.setUpRealDatabase(table_names=[], sqlite_memory=False)

def createDbConfig(self):
return dbconfig.DbConfig({"db_url": self.db_url}, self.basedir)
def createDbConfig(self, db_url=None):
return dbconfig.DbConfig({"db_url": db_url or self.db_url}, self.basedir)

def test_default(self):
def thd():
Expand All @@ -93,3 +93,24 @@ def thd():
self.assertRaises(KeyError, db.get, u"slaves")

return threads.deferToThread(thd)

def test_bad_url(self):
def thd():
db = self.createDbConfig("garbage://")
self.assertRaises(KeyError, db.get, u"slaves")

return threads.deferToThread(thd)

def test_bad_url2(self):
def thd():
db = self.createDbConfig("trash")
self.assertRaises(KeyError, db.get, u"slaves")

return threads.deferToThread(thd)

def test_bad_url3(self):
def thd():
db = self.createDbConfig("sqlite://bad")
self.assertRaises(KeyError, db.get, u"slaves")

return threads.deferToThread(thd)

0 comments on commit 2196751

Please sign in to comment.