From 41ce858c9325a352972eeb790289a22c74722212 Mon Sep 17 00:00:00 2001 From: Christophe Monniez Date: Tue, 26 Feb 2019 10:19:54 +0100 Subject: [PATCH] [FIX] runbot: fix oversight of logging reason in _skip When giving a reason of a build skip, the reason paramater was missing in the logging string. Test is also added to verify the build skip. --- runbot/models/build.py | 2 +- runbot/tests/test_build.py | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/runbot/models/build.py b/runbot/models/build.py index d304904f..95a9350b 100644 --- a/runbot/models/build.py +++ b/runbot/models/build.py @@ -308,7 +308,7 @@ class runbot_build(models.Model): def _skip(self, reason=None): """Mark builds ids as skipped""" if reason: - self._logger('skip', reason) + self._logger('skip %s', reason) self.write({'state': 'done', 'result': 'skipped'}) to_unduplicate = self.search([('id', 'in', self.ids), ('duplicate_id', '!=', False)]) to_unduplicate._force() diff --git a/runbot/tests/test_build.py b/runbot/tests/test_build.py index c0fef53b..f28f797a 100644 --- a/runbot/tests/test_build.py +++ b/runbot/tests/test_build.py @@ -158,6 +158,29 @@ class Test_Build(common.TransactionCase): }) self.assertEqual(build, self.Build, "build should be an empty recordset") + @patch('odoo.addons.runbot.models.build._logger') + def test_build_skip(self, mock_logger): + """test build is skipped""" + build = self.Build.create({ + 'branch_id': self.branch.id, + 'name': 'd0d0caca0000ffffffffffffffffffffffffffff', + 'port': '1234', + }) + build._skip() + self.assertEqual(build.state, 'done') + self.assertEqual(build.result, 'skipped') + + other_build = self.Build.create({ + 'branch_id': self.branch.id, + 'name': 'deadbeef0000ffffffffffffffffffffffffffff', + 'port': '1234', + }) + other_build._skip(reason='A good reason') + self.assertEqual(other_build.state, 'done') + self.assertEqual(other_build.result, 'skipped') + log_first_part = '%s skip %%s' % (other_build.dest) + mock_logger.debug.assert_called_with(log_first_part, 'A good reason') + @patch('odoo.addons.runbot.models.branch.runbot_branch._is_on_remote') def test_closest_branch_01(self, mock_is_on_remote): """ test find a matching branch in a target repo based on branch name """