From 9863acefb119a0bbaa311eee1c41dae9a2149727 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Mon, 22 May 2017 19:08:09 +0200 Subject: [PATCH] TT#16532 hotfix: set target_release Change-Id: Ic052b94a1982c888436d8a22137f23b08c246f84 --- hotfix/test/test_hotfix_released.py | 12 +++++++++++- hotfix/utils.py | 12 ++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/hotfix/test/test_hotfix_released.py b/hotfix/test/test_hotfix_released.py index c582e27..2b63ca8 100644 --- a/hotfix/test/test_hotfix_released.py +++ b/hotfix/test/test_hotfix_released.py @@ -61,10 +61,19 @@ class TestHotfixReleased(BaseTest): self.assertEquals(changelog.full_version, "3.8.7.4+0~mr3.8.7.4") self.assertEquals(changelog.package, "ngcp-fake") + def test_get_target_release(self): + val = utils.get_target_release("3.8.7.4+0~mr3.8.7.4") + self.assertEquals(val, "mr3.8.7") + + def test_get_target_release_ko(self): + val = utils.get_target_release("3.8.7.4-1") + self.assertIsNone(val) + @patch('__builtin__.open', mock_open(read_data=debian_changelog)) @patch('repoapi.utils.dlfile') + @patch('repoapi.utils.workfront_set_release_target') @patch('repoapi.utils.workfront_note_send') - def test_hotfixreleased(self, wns, dlfile): + def test_hotfixreleased(self, wns, wsrt, dlfile): param = self.get_defaults() jbi = JenkinsBuildInfo.objects.create(**param) tasks.hotfix_released.delay(jbi.pk, "/tmp/fake.txt") @@ -89,3 +98,4 @@ class TestHotfixReleased(BaseTest): msg = "hotfix %s %s triggered" % (projectname, version) calls.append(call("123", msg)) wns.assert_has_calls(calls) + wsrt.assert_has_calls([call("345", "mr3.8.7"), call("123", "mr3.8.7")]) diff --git a/hotfix/utils.py b/hotfix/utils.py index 4c87cab..1e4f311 100644 --- a/hotfix/utils.py +++ b/hotfix/utils.py @@ -13,11 +13,14 @@ # You should have received a copy of the GNU General Public License along # with this program. If not, see . from __future__ import absolute_import +import re import logging from debian.changelog import Changelog from repoapi import utils from .models import WorkfrontNoteInfo +hotfix_re_release = re.compile('.+~(mr[0-9]+\.[0-9]+\.[0-9]+).[0-9]+$') + logger = logging.getLogger(__name__) @@ -32,6 +35,12 @@ def parse_changelog(path): return (set_ids, changelog) +def get_target_release(version): + match = hotfix_re_release.search(version) + if match: + return match.group(1) + + def create_note(wid, projectname, version): wni = WorkfrontNoteInfo.objects @@ -42,3 +51,6 @@ def create_note(wid, projectname, version): if created: msg = "hotfix %s %s triggered" % (note.projectname, note.version) utils.workfront_note_send(wid, msg) + target_release = get_target_release(note.version) + if target_release: + utils.workfront_set_release_target(wid, target_release)