# HG changeset patch # User cmlenz # Date 1129362411 0 # Node ID c0439a21b01dc997dcb8a50ad77aef4572bd056b # Parent aade6949c0cc3a5cce1b62b7adf533358a4482ab Ported [297] to [source:branches/0.5.x 0.5.x]. diff --git a/bitten/model.py b/bitten/model.py --- a/bitten/model.py +++ b/bitten/model.py @@ -108,6 +108,11 @@ (self.name, self.path, int(self.active or 0), self.recipe, self.min_rev, self.max_rev, self.label, self.description, self._old_name)) + if self.name != self._old_name: + cursor.execute("UPDATE bitten_platform SET config=%s " + "WHERE config=%s", (self.name, self._old_name)) + cursor.execute("UPDATE bitten_build SET config=%s " + "WHERE config=%s", (self.name, self._old_name)) if handle_ta: db.commit() diff --git a/bitten/tests/model.py b/bitten/tests/model.py --- a/bitten/tests/model.py +++ b/bitten/tests/model.py @@ -115,6 +115,22 @@ config.name = None self.assertRaises(AssertionError, config.update) + def test_update_name_with_platform(self): + db = self.env.get_db_cnx() + cursor = db.cursor() + cursor.execute("INSERT INTO bitten_config (name,path,label,active) " + "VALUES (%s,%s,%s,%s)", ('test', 'trunk', 'Test', 0)) + cursor.execute("INSERT INTO bitten_platform (config,name) " + "VALUES (%s,%s)", ('test', 'NetBSD')) + + config = BuildConfig.fetch(self.env, 'test') + config.name = 'foobar' + config.update() + + cursor.execute("SELECT config,name FROM bitten_platform") + self.assertEqual(('foobar', 'NetBSD'), cursor.fetchone()) + self.assertEqual(None, cursor.fetchone()) + def test_delete(self): db = self.env.get_db_cnx() cursor = db.cursor()