Mercurial > bitten > bitten-test
changeset 345:6091ebc82dfc 0.5.x
Ported [359] to 0.5.x.
author | cmlenz |
---|---|
date | Wed, 12 Apr 2006 14:38:38 +0000 |
parents | 94d5ede55b82 |
children | 2b5d886a248e |
files | bitten/model.py bitten/tests/model.py |
diffstat | 2 files changed, 37 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/bitten/model.py +++ b/bitten/model.py @@ -714,10 +714,11 @@ "VALUES (%s,%s,%s,%s)", (self.build, self.step, self.generator, self.orderno)) id = db.get_last_id(cursor, 'bitten_log') - cursor.executemany("INSERT INTO bitten_log_message " - "(log,line,level,message) VALUES (%s,%s,%s,%s)", - [(id, idx, message[0], message[1]) for idx, message - in enumerate(self.messages)]) + if self.messages: + cursor.executemany("INSERT INTO bitten_log_message " + "(log,line,level,message) VALUES (%s,%s,%s,%s)", + [(id, idx, message[0], message[1]) for idx, message + in enumerate(self.messages)]) if handle_ta: db.commit() @@ -844,7 +845,7 @@ "(build,step,category,generator) VALUES (%s,%s,%s,%s)", (self.build, self.step, self.category, self.generator)) id = db.get_last_id(cursor, 'bitten_report') - for idx, item in enumerate(self.items): + for idx, item in enumerate([item for item in self.items if item]): cursor.executemany("INSERT INTO bitten_report_item " "(report,item,name,value) VALUES (%s,%s,%s,%s)", [(id, idx, key, value) for key, value
--- a/bitten/tests/model.py +++ b/bitten/tests/model.py @@ -453,6 +453,21 @@ self.assertEqual((BuildLog.INFO, 'running tests'), cursor.fetchone()) self.assertEqual((BuildLog.ERROR, 'tests failed'), cursor.fetchone()) + def test_insert_empty(self): + log = BuildLog(self.env, build=1, step='test', generator='distutils') + log.messages = [] + log.insert() + self.assertNotEqual(None, log.id) + + db = self.env.get_db_cnx() + cursor = db.cursor() + cursor.execute("SELECT build,step,generator FROM bitten_log " + "WHERE id=%s", (log.id,)) + self.assertEqual((1, 'test', 'distutils'), cursor.fetchone()) + cursor.execute("SELECT COUNT(*) FROM bitten_log_message " + "WHERE log=%s", (log.id,)) + self.assertEqual(0, cursor.fetchone()[0]) + def test_insert_no_build_or_step(self): log = BuildLog(self.env, step='test') self.assertRaises(AssertionError, log.insert) # No build @@ -605,6 +620,22 @@ generator='unittest') self.assertRaises(AssertionError, report.insert) + def test_insert_empty_items(self): + report = Report(self.env, build=1, step='test', category='test', + generator='unittest') + report.items = [{}, {}] + report.insert() + + db = self.env.get_db_cnx() + cursor = db.cursor() + cursor.execute("SELECT build,step,category,generator " + "FROM bitten_report WHERE id=%s", (report.id,)) + self.assertEqual((1, 'test', 'test', 'unittest'), + cursor.fetchone()) + cursor.execute("SELECT COUNT(*) FROM bitten_report_item " + "WHERE report=%s", (report.id,)) + self.assertEqual(0, cursor.fetchone()[0]) + def test_fetch(self): db = self.env.get_db_cnx() cursor = db.cursor()