TT#43813 test: don't use deprecated assert

> DeprecationWarning: Please use assertEqual instead.

Change-Id: Ib2d3eb24dacfe33b5b0d15212dc2109344b0a9b5
changes/91/38691/1
Victor Seva 6 years ago
parent 261d8b8715
commit a382ec71f0

@ -57,12 +57,12 @@ class TestHotfixReleased(BaseTest):
def test_parse_changelog(self): def test_parse_changelog(self):
ids, changelog = utils.parse_changelog("/tmp/fake.txt") ids, changelog = utils.parse_changelog("/tmp/fake.txt")
self.assertCountEqual(ids, ["345", "123"]) self.assertCountEqual(ids, ["345", "123"])
self.assertEquals(changelog.full_version, "3.8.7.4+0~mr3.8.7.4") self.assertEqual(changelog.full_version, "3.8.7.4+0~mr3.8.7.4")
self.assertEquals(changelog.package, "ngcp-fake") self.assertEqual(changelog.package, "ngcp-fake")
def test_get_target_release(self): def test_get_target_release(self):
val = utils.get_target_release("3.8.7.4+0~mr3.8.7.4") val = utils.get_target_release("3.8.7.4+0~mr3.8.7.4")
self.assertEquals(val, "mr3.8.7.4") self.assertEqual(val, "mr3.8.7.4")
def test_get_target_release_ko(self): def test_get_target_release_ko(self):
val = utils.get_target_release("3.8.7.4-1") val = utils.get_target_release("3.8.7.4-1")
@ -81,11 +81,11 @@ class TestHotfixReleased(BaseTest):
gri = models.WorkfrontNoteInfo.objects.filter( gri = models.WorkfrontNoteInfo.objects.filter(
projectname=projectname, version=version projectname=projectname, version=version
) )
self.assertEquals(gri.count(), 2) self.assertEqual(gri.count(), 2)
gri = models.WorkfrontNoteInfo.objects.filter( gri = models.WorkfrontNoteInfo.objects.filter(
workfront_id="345", projectname=projectname, version=version workfront_id="345", projectname=projectname, version=version
) )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "hotfix %s.git %s triggered" % (projectname, version) msg = "hotfix %s.git %s triggered" % (projectname, version)
calls = [ calls = [
call("345", msg), call("345", msg),
@ -93,7 +93,7 @@ class TestHotfixReleased(BaseTest):
gri = models.WorkfrontNoteInfo.objects.filter( gri = models.WorkfrontNoteInfo.objects.filter(
workfront_id="123", projectname=projectname, version=version workfront_id="123", projectname=projectname, version=version
) )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "hotfix %s.git %s triggered" % (projectname, version) msg = "hotfix %s.git %s triggered" % (projectname, version)
calls.append(call("123", msg)) calls.append(call("123", msg))
wns.assert_has_calls(calls, any_order=True) wns.assert_has_calls(calls, any_order=True)

@ -1,19 +1,21 @@
# Copyright (C) 2016 The Sipwise Team - http://sipwise.com # Copyright (C) 2016 The Sipwise Team - http://sipwise.com
#
# This program is free software: you can redistribute it and/or modify it # This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free # under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) # Software Foundation, either version 3 of the License, or (at your option)
# any later version. # any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT # This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details. # more details.
#
# You should have received a copy of the GNU General Public License along # You should have received a copy of the GNU General Public License along
# with this prograproj. If not, see <http://www.gnu.org/licenses/>. # with this prograproj. If not, see <http://www.gnu.org/licenses/>.
import copy import copy
from django.test import TestCase from django.test import TestCase
from release_dashboard.models import Project from release_dashboard.models import Project
GERRIT_REST_TAGS = """ GERRIT_REST_TAGS = """
@ -27,14 +29,7 @@ GERRIT_REST_TAGS = """
} }
] ]
""" """
FILTERED_TAGS = [ FILTERED_TAGS = [{"ref": "refs/tags/mr2.0.0"}, {"ref": "refs/tags/mr1.0.0"}]
{
"ref": "refs/tags/mr2.0.0"
},
{
"ref": "refs/tags/mr1.0.0"
}
]
GERRIT_REST_BRANCHES = """ GERRIT_REST_BRANCHES = """
)]}' )]}'
[ [
@ -47,74 +42,73 @@ GERRIT_REST_BRANCHES = """
] ]
""" """
FILTERED_BRANCHES = [ FILTERED_BRANCHES = [
{ {"ref": "refs/heads/master"},
"ref": "refs/heads/master" {"ref": "refs/heads/vseva/1789"},
},
{
"ref": "refs/heads/vseva/1789"
}
] ]
class ProjectTestCase(TestCase): class ProjectTestCase(TestCase):
def test_create(self): def test_create(self):
proj = Project.objects.create(name="fake") proj = Project.objects.create(name="fake")
self.assertEquals(proj.name, "fake") self.assertEqual(proj.name, "fake")
def test_tags(self): def test_tags(self):
proj = Project.objects.create(name="fake", json_tags=FILTERED_TAGS) proj = Project.objects.create(name="fake", json_tags=FILTERED_TAGS)
self.assertEquals(proj.name, "fake") self.assertEqual(proj.name, "fake")
self.assertIsInstance(proj.tags, list) self.assertIsInstance(proj.tags, list)
self.assertCountEqual(proj.tags, ["mr2.0.0", "mr1.0.0", ]) self.assertCountEqual(proj.tags, ["mr2.0.0", "mr1.0.0"])
def test_tags_null(self): def test_tags_null(self):
proj = Project.objects.create(name="fake") proj = Project.objects.create(name="fake")
self.assertEquals(proj.name, "fake") self.assertEqual(proj.name, "fake")
self.assertIsInstance(proj.tags, list) self.assertIsInstance(proj.tags, list)
self.assertCountEqual(proj.tags, []) self.assertCountEqual(proj.tags, [])
def test_branches(self): def test_branches(self):
proj = Project.objects.create(name="fake", proj = Project.objects.create(
json_branches=FILTERED_BRANCHES) name="fake", json_branches=FILTERED_BRANCHES
self.assertEquals(proj.name, "fake") )
self.assertEqual(proj.name, "fake")
self.assertIsInstance(proj.branches, list) self.assertIsInstance(proj.branches, list)
self.assertCountEqual(proj.branches, ["vseva/1789", "master"]) self.assertCountEqual(proj.branches, ["vseva/1789", "master"])
def test_branches_null(self): def test_branches_null(self):
proj = Project.objects.create(name="fake") proj = Project.objects.create(name="fake")
self.assertEquals(proj.name, "fake") self.assertEqual(proj.name, "fake")
self.assertIsInstance(proj.branches, list) self.assertIsInstance(proj.branches, list)
self.assertCountEqual(proj.branches, []) self.assertCountEqual(proj.branches, [])
def test_filtered_json(self): def test_filtered_json(self):
res = Project._get_filtered_json(GERRIT_REST_TAGS) res = Project._get_filtered_json(GERRIT_REST_TAGS)
self.assertEquals(res, FILTERED_TAGS) self.assertEqual(res, FILTERED_TAGS)
def test_filter_values(self): def test_filter_values(self):
values = copy.deepcopy(FILTERED_TAGS) values = copy.deepcopy(FILTERED_TAGS)
res = Project._filter_values(FILTERED_TAGS, '^refs/tags/(.+)$') res = Project._filter_values(FILTERED_TAGS, "^refs/tags/(.+)$")
self.assertEquals(res, ['mr2.0.0', 'mr1.0.0']) self.assertEqual(res, ["mr2.0.0", "mr1.0.0"])
values.append({"ref": "no/no"}) values.append({"ref": "no/no"})
res = Project._filter_values(values, '^refs/tags/(.+)$') res = Project._filter_values(values, "^refs/tags/(.+)$")
self.assertEquals(res, ['mr2.0.0', 'mr1.0.0']) self.assertEqual(res, ["mr2.0.0", "mr1.0.0"])
def test_filter_values_regex(self): def test_filter_values_regex(self):
values = copy.deepcopy(FILTERED_TAGS) values = copy.deepcopy(FILTERED_TAGS)
res = Project._filter_values(FILTERED_TAGS, '^refs/tags/(.+)$', res = Project._filter_values(
r'^mr[0-9]+\.[0-9]+\.[0-9]+$') FILTERED_TAGS, "^refs/tags/(.+)$", r"^mr[0-9]+\.[0-9]+\.[0-9]+$"
self.assertEquals(res, ['mr2.0.0', 'mr1.0.0']) )
self.assertEqual(res, ["mr2.0.0", "mr1.0.0"])
values.append({"ref": "refs/tags/3.7.8"}) values.append({"ref": "refs/tags/3.7.8"})
res = Project._filter_values(values, '^refs/tags/(.+)$', res = Project._filter_values(
r'^mr[0-9]+\.[0-9]+\.[0-9]+$') values, "^refs/tags/(.+)$", r"^mr[0-9]+\.[0-9]+\.[0-9]+$"
self.assertEquals(res, ['mr2.0.0', 'mr1.0.0']) )
res = Project._filter_values(values, '^refs/tags/(.+)$', self.assertEqual(res, ["mr2.0.0", "mr1.0.0"])
r'^[0-9]+\.[0-9]+\.[0-9]+$') res = Project._filter_values(
self.assertEquals(res, ['3.7.8']) values, "^refs/tags/(.+)$", r"^[0-9]+\.[0-9]+\.[0-9]+$"
)
self.assertEqual(res, ["3.7.8"])
def test_tags_set(self): def test_tags_set(self):
proj = Project.objects.create(name="fake") proj = Project.objects.create(name="fake")
self.assertEquals(proj.name, "fake") self.assertEqual(proj.name, "fake")
self.assertIsInstance(proj.tags, list) self.assertIsInstance(proj.tags, list)
self.assertCountEqual(proj.tags, []) self.assertCountEqual(proj.tags, [])
proj.tags = GERRIT_REST_TAGS proj.tags = GERRIT_REST_TAGS
@ -122,7 +116,7 @@ class ProjectTestCase(TestCase):
def test_branches_set(self): def test_branches_set(self):
proj = Project.objects.create(name="fake") proj = Project.objects.create(name="fake")
self.assertEquals(proj.name, "fake") self.assertEqual(proj.name, "fake")
self.assertIsInstance(proj.branches, list) self.assertIsInstance(proj.branches, list)
self.assertCountEqual(proj.branches, []) self.assertCountEqual(proj.branches, [])
proj.branches = GERRIT_REST_BRANCHES proj.branches = GERRIT_REST_BRANCHES
@ -135,11 +129,9 @@ class ProjectTestCase(TestCase):
{"ref": "refs/heads/mr0.1.1"}, {"ref": "refs/heads/mr0.1.1"},
{"ref": "refs/heads/vseva/nono"}, {"ref": "refs/heads/vseva/nono"},
] ]
proj = Project.objects.create(name="fake", proj = Project.objects.create(name="fake", json_branches=tmp)
json_branches=tmp) self.assertEqual(proj.name, "fake")
self.assertEquals(proj.name, "fake") self.assertCountEqual(proj.branches_mrXX(), ["mr0.1"])
self.assertCountEqual(proj.branches_mrXX(),
["mr0.1", ])
def test_branches_mrXXX(self): def test_branches_mrXXX(self):
tmp = [ tmp = [
@ -148,8 +140,6 @@ class ProjectTestCase(TestCase):
{"ref": "refs/heads/mr0.1.1"}, {"ref": "refs/heads/mr0.1.1"},
{"ref": "refs/heads/vseva/nono"}, {"ref": "refs/heads/vseva/nono"},
] ]
proj = Project.objects.create(name="fake", proj = Project.objects.create(name="fake", json_branches=tmp)
json_branches=tmp) self.assertEqual(proj.name, "fake")
self.assertEquals(proj.name, "fake") self.assertCountEqual(proj.branches_mrXXX(), ["mr0.1.1"])
self.assertCountEqual(proj.branches_mrXXX(),
["mr0.1.1", ])

@ -1,23 +1,28 @@
# Copyright (C) 2017 The Sipwise Team - http://sipwise.com # Copyright (C) 2017 The Sipwise Team - http://sipwise.com
#
# This program is free software: you can redistribute it and/or modify it # This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free # under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) # Software Foundation, either version 3 of the License, or (at your option)
# any later version. # any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT # This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details. # more details.
#
# You should have received a copy of the GNU General Public License along # You should have received a copy of the GNU General Public License along
# with this prograproj. If not, see <http://www.gnu.org/licenses/>. # with this prograproj. If not, see <http://www.gnu.org/licenses/>.
import uuid
from django.test import override_settings
from django.test import TestCase
from mock import call
from mock import patch
from django.test import TestCase, override_settings
from release_dashboard import tasks from release_dashboard import tasks
from release_dashboard.models import Project, DockerImage, DockerTag from release_dashboard.models import DockerImage
from mock import patch, call from release_dashboard.models import DockerTag
import uuid from release_dashboard.models import Project
DOCKER_REST_CATALOG = """ DOCKER_REST_CATALOG = """
{ {
@ -30,52 +35,55 @@ DOCKER_REST_CATALOG = """
""" """
DOCKER_REST_FAKE_TAGS = { DOCKER_REST_FAKE_TAGS = {
'data-hal-jessie': """{ "data-hal-jessie": """{
"name": "data-hal-jessie", "name": "data-hal-jessie",
"tags":[ "tags":[
"I3a899", "I3a899",
"latest"] "latest"]
}""", }""",
'data-hal-selenium-jessie': """{ "data-hal-selenium-jessie": """{
"name":"data-hal-selenium-jessie", "name":"data-hal-selenium-jessie",
"tags":["If53a9","latest"] "tags":["If53a9","latest"]
}""" }""",
} }
def fake_tag(url): def fake_tag(url):
if url == "data-hal-jessie/tags/list": if url == "data-hal-jessie/tags/list":
return DOCKER_REST_FAKE_TAGS['data-hal-jessie'] return DOCKER_REST_FAKE_TAGS["data-hal-jessie"]
elif url == "_catalog": elif url == "_catalog":
return DOCKER_REST_CATALOG return DOCKER_REST_CATALOG
elif url == "data-hal-selenium-jessie/tags/list": elif url == "data-hal-selenium-jessie/tags/list":
return DOCKER_REST_FAKE_TAGS['data-hal-selenium-jessie'] return DOCKER_REST_FAKE_TAGS["data-hal-selenium-jessie"]
else: else:
return "{}" return "{}"
def fake_manifest(url): def fake_manifest(url):
return ('{}', uuid.uuid4()) return ("{}", uuid.uuid4())
@override_settings(CELERY_EAGER_PROPAGATES_EXCEPTIONS=True) @override_settings(CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
@override_settings(DOCKER_REGISTRY_URL='{}') @override_settings(DOCKER_REGISTRY_URL="{}")
@override_settings(DEBUG=False) @override_settings(DEBUG=False)
class TasksDockerTestCase(TestCase): class TasksDockerTestCase(TestCase):
@patch(
@patch('release_dashboard.utils.docker.get_docker_manifests_info', "release_dashboard.utils.docker.get_docker_manifests_info",
side_effect=fake_manifest) side_effect=fake_manifest,
@patch('release_dashboard.utils.docker.get_docker_info', )
side_effect=fake_tag) @patch(
"release_dashboard.utils.docker.get_docker_info", side_effect=fake_tag
)
def test_docker_fetch_info(self, gdi, gdmi): def test_docker_fetch_info(self, gdi, gdmi):
proj = Project.objects.create(name="data-hal") proj = Project.objects.create(name="data-hal")
self.assertEquals(proj.name, "data-hal") self.assertEqual(proj.name, "data-hal")
image = DockerImage.objects.create( image = DockerImage.objects.create(
name='data-hal-jessie', project=proj) name="data-hal-jessie", project=proj
self.assertCountEqual(proj.dockerimage_set.all(), [image, ]) )
result = tasks.docker_fetch_info.delay('data-hal-jessie') self.assertCountEqual(proj.dockerimage_set.all(), [image])
result = tasks.docker_fetch_info.delay("data-hal-jessie")
self.assertTrue(result.successful()) self.assertTrue(result.successful())
image = DockerImage.objects.get(name='data-hal-jessie') image = DockerImage.objects.get(name="data-hal-jessie")
calls = [ calls = [
call("data-hal-jessie/tags/list"), call("data-hal-jessie/tags/list"),
] ]
@ -87,15 +95,18 @@ class TasksDockerTestCase(TestCase):
gdmi.assert_has_calls(calls) gdmi.assert_has_calls(calls)
self.assertCountEqual(image.tags, ["I3a899", "latest"]) self.assertCountEqual(image.tags, ["I3a899", "latest"])
@patch('release_dashboard.utils.docker.get_docker_manifests_info', @patch(
side_effect=fake_manifest) "release_dashboard.utils.docker.get_docker_manifests_info",
@patch('release_dashboard.utils.docker.get_docker_info', side_effect=fake_manifest,
side_effect=fake_tag) )
@patch(
"release_dashboard.utils.docker.get_docker_info", side_effect=fake_tag
)
def test_docker_fetch_project(self, gdi, gdmi): def test_docker_fetch_project(self, gdi, gdmi):
Project.objects.create(name="data-hal") Project.objects.create(name="data-hal")
result = tasks.docker_fetch_project.delay('data-hal') result = tasks.docker_fetch_project.delay("data-hal")
self.assertTrue(result.successful()) self.assertTrue(result.successful())
image = DockerImage.objects.get(name='data-hal-jessie') image = DockerImage.objects.get(name="data-hal-jessie")
calls = [ calls = [
call("_catalog"), call("_catalog"),
call("data-hal-jessie/tags/list"), call("data-hal-jessie/tags/list"),
@ -108,16 +119,21 @@ class TasksDockerTestCase(TestCase):
gdmi.assert_has_calls(calls) gdmi.assert_has_calls(calls)
self.assertCountEqual(image.tags, ["I3a899", "latest"]) self.assertCountEqual(image.tags, ["I3a899", "latest"])
@patch('release_dashboard.utils.docker.get_docker_manifests_info', @patch(
side_effect=fake_manifest) "release_dashboard.utils.docker.get_docker_manifests_info",
@patch('release_dashboard.utils.docker.get_docker_info', side_effect=fake_manifest,
side_effect=fake_tag) )
@patch(
"release_dashboard.utils.docker.get_docker_info", side_effect=fake_tag
)
def test_docker_fetch_all(self, gdi, gdmi): def test_docker_fetch_all(self, gdi, gdmi):
result = tasks.docker_fetch_all.delay() result = tasks.docker_fetch_all.delay()
self.assertTrue(result.successful()) self.assertTrue(result.successful())
proj = Project.objects.get(name="data-hal") proj = Project.objects.get(name="data-hal")
images = [DockerImage.objects.get(name='data-hal-jessie'), images = [
DockerImage.objects.get(name='data-hal-selenium-jessie')] DockerImage.objects.get(name="data-hal-jessie"),
DockerImage.objects.get(name="data-hal-selenium-jessie"),
]
self.assertCountEqual(proj.dockerimage_set.all(), images) self.assertCountEqual(proj.dockerimage_set.all(), images)
self.assertCountEqual(images[0].tags, ["I3a899", "latest"]) self.assertCountEqual(images[0].tags, ["I3a899", "latest"])
self.assertCountEqual(images[1].tags, ["If53a9", "latest"]) self.assertCountEqual(images[1].tags, ["If53a9", "latest"])
@ -135,17 +151,18 @@ class TasksDockerTestCase(TestCase):
] ]
gdmi.assert_has_calls(calls) gdmi.assert_has_calls(calls)
@patch('release_dashboard.utils.docker.delete_docker_info') @patch("release_dashboard.utils.docker.delete_docker_info")
def test_remove_tag(self, ddi): def test_remove_tag(self, ddi):
proj = Project.objects.create(name="data-hal") proj = Project.objects.create(name="data-hal")
image = DockerImage.objects.create( image = DockerImage.objects.create(
name='data-hal-jessie', project=proj) name="data-hal-jessie", project=proj
)
tag = DockerTag.objects.create( tag = DockerTag.objects.create(
name='latest', name="latest", image=image, reference=uuid.uuid4()
image=image, )
reference=uuid.uuid4()) result = tasks.docker_remove_tag.delay("data-hal-jessie", "latest")
result = tasks.docker_remove_tag.delay('data-hal-jessie', 'latest')
self.assertTrue(result.successful()) self.assertTrue(result.successful())
ddi.assert_called_once_with('%s/manifests/%s' % ddi.assert_called_once_with(
(image.name, tag.reference)) "%s/manifests/%s" % (image.name, tag.reference)
)
self.assertTrue(image not in image.tags) self.assertTrue(image not in image.tags)

@ -1,189 +1,204 @@
# Copyright (C) 2015 The Sipwise Team - http://sipwise.com # Copyright (C) 2015 The Sipwise Team - http://sipwise.com
#
# This program is free software: you can redistribute it and/or modify it # This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free # under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) # Software Foundation, either version 3 of the License, or (at your option)
# any later version. # any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT # This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details. # more details.
#
# You should have received a copy of the GNU General Public License along # You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
from mock import patch
from repoapi.models import JenkinsBuildInfo, GerritRepoInfo from repoapi.models import GerritRepoInfo
from repoapi.models import JenkinsBuildInfo
from repoapi.test.base import BaseTest from repoapi.test.base import BaseTest
from mock import patch
class GerritRepoInfoTestCase(BaseTest): class GerritRepoInfoTestCase(BaseTest):
def get_defaults(self): def get_defaults(self):
defaults = { defaults = {
'tag': "edc90cd9-37f3-4613-9748-ed05a32031c2", "tag": "edc90cd9-37f3-4613-9748-ed05a32031c2",
'projectname': "kamailio", "projectname": "kamailio",
'jobname': "kamailio-repos", "jobname": "kamailio-repos",
'buildnumber': 897, "buildnumber": 897,
'result': "SUCCESS", "result": "SUCCESS",
'job_url': "https://jenkins.mgm.sipwise.com/job/kamailio-repos/", "job_url": "https://jenkins.mgm.sipwise.com/job/kamailio-repos/",
'gerrit_patchset': "1", "gerrit_patchset": "1",
'gerrit_change': "2054", "gerrit_change": "2054",
'gerrit_eventtype': "patchset-created", "gerrit_eventtype": "patchset-created",
'param_tag': "none", "param_tag": "none",
'param_branch': "master", "param_branch": "master",
'param_release': "none", "param_release": "none",
'param_distribution': "wheezy", "param_distribution": "wheezy",
'param_ppa': "gerrit_MT10339_review2054" "param_ppa": "gerrit_MT10339_review2054",
} }
return defaults return defaults
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_creation(self, utils): def test_creation(self, utils):
JenkinsBuildInfo.objects.create(**self.get_defaults()) JenkinsBuildInfo.objects.create(**self.get_defaults())
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_creation_deletion(self, utils): def test_creation_deletion(self, utils):
param = self.get_defaults() param = self.get_defaults()
param['gerrit_eventtype'] = "change-merged" param["gerrit_eventtype"] = "change-merged"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 0) )
self.assertEqual(gri.count(), 0)
utils.assert_called_with("gerrit_MT10339_review2054") utils.assert_called_with("gerrit_MT10339_review2054")
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_no_creation(self, utils): def test_no_creation(self, utils):
param = self.get_defaults() param = self.get_defaults()
param['jobname'] = "kamailio-get-code" param["jobname"] = "kamailio-get-code"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 0) )
self.assertEqual(gri.count(), 0)
utils.assert_not_called() utils.assert_not_called()
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_creation_review(self, utils): def test_creation_review(self, utils):
param = self.get_defaults() param = self.get_defaults()
param['buildnumber'] = 898 param["buildnumber"] = 898
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_creation_multi_review(self, utils): def test_creation_multi_review(self, utils):
param = self.get_defaults() param = self.get_defaults()
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
param['projectname'] = "fake" param["projectname"] = "fake"
param['jobname'] = "fake-repos" param["jobname"] = "fake-repos"
param['buildnumber'] = 8 param["buildnumber"] = 8
param['gerrit_change'] = 2 param["gerrit_change"] = 2
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 2) )
self.assertEqual(gri.count(), 2)
utils.assert_not_called() utils.assert_not_called()
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_creation_multi_review_no_del(self, utils): def test_creation_multi_review_no_del(self, utils):
param = self.get_defaults() param = self.get_defaults()
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
param_fake = self.get_defaults() param_fake = self.get_defaults()
param_fake['projectname'] = "fake" param_fake["projectname"] = "fake"
param_fake['jobname'] = "fake-repos" param_fake["jobname"] = "fake-repos"
param_fake['buildnumber'] = 8 param_fake["buildnumber"] = 8
param_fake['gerrit_change'] = 2 param_fake["gerrit_change"] = 2
JenkinsBuildInfo.objects.create(**param_fake) JenkinsBuildInfo.objects.create(**param_fake)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 2) )
self.assertEqual(gri.count(), 2)
utils.assert_not_called() utils.assert_not_called()
param['gerrit_eventtype'] = "change-merged" param["gerrit_eventtype"] = "change-merged"
param['buildnumber'] = 898 param["buildnumber"] = 898
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_creation_multi_review_del(self, utils): def test_creation_multi_review_del(self, utils):
param = self.get_defaults() param = self.get_defaults()
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
param_fake = self.get_defaults() param_fake = self.get_defaults()
param_fake['projectname'] = "fake" param_fake["projectname"] = "fake"
param_fake['jobname'] = "fake-repos" param_fake["jobname"] = "fake-repos"
param_fake['buildnumber'] = 8 param_fake["buildnumber"] = 8
param_fake['gerrit_change'] = 2 param_fake["gerrit_change"] = 2
JenkinsBuildInfo.objects.create(**param_fake) JenkinsBuildInfo.objects.create(**param_fake)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 2) )
self.assertEqual(gri.count(), 2)
utils.assert_not_called() utils.assert_not_called()
param['gerrit_eventtype'] = "change-merged" param["gerrit_eventtype"] = "change-merged"
param['buildnumber'] = 898 param["buildnumber"] = 898
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
param_fake['buildnumber'] = 9 param_fake["buildnumber"] = 9
param_fake['gerrit_eventtype'] = "change-merged" param_fake["gerrit_eventtype"] = "change-merged"
JenkinsBuildInfo.objects.create(**param_fake) JenkinsBuildInfo.objects.create(**param_fake)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 0) )
self.assertEqual(gri.count(), 0)
utils.assert_called_with("gerrit_MT10339_review2054") utils.assert_called_with("gerrit_MT10339_review2054")
@patch('repoapi.utils.jenkins_remove_ppa') @patch("repoapi.utils.jenkins_remove_ppa")
def test_abandoned_review_del(self, utils): def test_abandoned_review_del(self, utils):
param = self.get_defaults() param = self.get_defaults()
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
utils.assert_not_called() utils.assert_not_called()
param['jobname'] = "kamailio-cleanup" param["jobname"] = "kamailio-cleanup"
param['gerrit_eventtype'] = "change-abandoned" param["gerrit_eventtype"] = "change-abandoned"
param['buildnumber'] = 898 param["buildnumber"] = 898
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = GerritRepoInfo.objects.filter( gri = GerritRepoInfo.objects.filter(
param_ppa="gerrit_MT10339_review2054") param_ppa="gerrit_MT10339_review2054"
self.assertEquals(gri.count(), 0) )
self.assertEqual(gri.count(), 0)
utils.assert_called_with("gerrit_MT10339_review2054") utils.assert_called_with("gerrit_MT10339_review2054")

@ -73,7 +73,7 @@ class JBIQueriesTestCase(BaseTest):
def test_latest_uuid(self): def test_latest_uuid(self):
date = parse_datetime("2015-05-04T17:04:57.802Z") date = parse_datetime("2015-05-04T17:04:57.802Z")
self.assertEquals( self.assertEqual(
JenkinsBuildInfo.objects.latest_uuid("mr3.1-fake", "fake"), JenkinsBuildInfo.objects.latest_uuid("mr3.1-fake", "fake"),
{"tag": "UUID1", "date": date}, {"tag": "UUID1", "date": date},
) )
@ -82,25 +82,25 @@ class JBIQueriesTestCase(BaseTest):
jbi = JenkinsBuildInfo.objects.get(pk=1) jbi = JenkinsBuildInfo.objects.get(pk=1)
jbi.date = datetime.now() jbi.date = datetime.now()
jbi.save() jbi.save()
self.assertEquals(JenkinsBuildInfo.objects.count(), 5) self.assertEqual(JenkinsBuildInfo.objects.count(), 5)
JenkinsBuildInfo.objects.purge_release( JenkinsBuildInfo.objects.purge_release(
"mr3.1-fake", timedelta(weeks=3) "mr3.1-fake", timedelta(weeks=3)
) )
self.assertEquals(JenkinsBuildInfo.objects.count(), 1) self.assertEqual(JenkinsBuildInfo.objects.count(), 1)
def test_purge_release_none(self): def test_purge_release_none(self):
jbi = JenkinsBuildInfo.objects.get(pk=1) jbi = JenkinsBuildInfo.objects.get(pk=1)
jbi.param_release = None jbi.param_release = None
jbi.save() jbi.save()
self.assertEquals( self.assertEqual(
JenkinsBuildInfo.objects.filter( JenkinsBuildInfo.objects.filter(
param_release__isnull=True param_release__isnull=True
).count(), ).count(),
1, 1,
) )
self.assertEquals(JenkinsBuildInfo.objects.count(), 5) self.assertEqual(JenkinsBuildInfo.objects.count(), 5)
JenkinsBuildInfo.objects.purge_release(None, timedelta(weeks=3)) JenkinsBuildInfo.objects.purge_release(None, timedelta(weeks=3))
self.assertEquals(JenkinsBuildInfo.objects.count(), 4) self.assertEqual(JenkinsBuildInfo.objects.count(), 4)
@override_settings(DEBUG=True) @override_settings(DEBUG=True)
@ -156,7 +156,7 @@ class JBIQueriesUUIDTest(BaseTest):
def test_latest_uuid(self): def test_latest_uuid(self):
date = parse_datetime("2015-05-04T17:04:57.802Z") date = parse_datetime("2015-05-04T17:04:57.802Z")
self.assertEquals( self.assertEqual(
JenkinsBuildInfo.objects.latest_uuid( JenkinsBuildInfo.objects.latest_uuid(
self.release, "kamailio", release_uuid=self.release_uuid self.release, "kamailio", release_uuid=self.release_uuid
), ),

@ -26,20 +26,20 @@ class TasksTestCase(BaseTest):
jbi = JenkinsBuildInfo.objects.get(pk=1) jbi = JenkinsBuildInfo.objects.get(pk=1)
jbi.date = datetime.now() jbi.date = datetime.now()
jbi.save() jbi.save()
self.assertEquals(JenkinsBuildInfo.objects.count(), 5) self.assertEqual(JenkinsBuildInfo.objects.count(), 5)
tasks.jbi_purge.delay("mr3.1-fake", 3) tasks.jbi_purge.delay("mr3.1-fake", 3)
self.assertEquals(JenkinsBuildInfo.objects.count(), 1) self.assertEqual(JenkinsBuildInfo.objects.count(), 1)
def test_purge_none(self): def test_purge_none(self):
jbi = JenkinsBuildInfo.objects.get(pk=1) jbi = JenkinsBuildInfo.objects.get(pk=1)
jbi.param_release = None jbi.param_release = None
jbi.save() jbi.save()
self.assertEquals( self.assertEqual(
JenkinsBuildInfo.objects.filter( JenkinsBuildInfo.objects.filter(
param_release__isnull=True param_release__isnull=True
).count(), ).count(),
1, 1,
) )
self.assertEquals(JenkinsBuildInfo.objects.count(), 5) self.assertEqual(JenkinsBuildInfo.objects.count(), 5)
tasks.jbi_purge.delay(None, 3) tasks.jbi_purge.delay(None, 3)
self.assertEquals(JenkinsBuildInfo.objects.count(), 4) self.assertEqual(JenkinsBuildInfo.objects.count(), 4)

@ -1,46 +1,44 @@
# Copyright (C) 2017 The Sipwise Team - http://sipwise.com # Copyright (C) 2017 The Sipwise Team - http://sipwise.com
#
# This program is free software: you can redistribute it and/or modify it # This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free # under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) # Software Foundation, either version 3 of the License, or (at your option)
# any later version. # any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT # This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details. # more details.
#
# You should have received a copy of the GNU General Public License along # You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
from repoapi.test.base import BaseTest
from mock import patch from mock import patch
from repoapi import utils from repoapi import utils
from repoapi.test.base import BaseTest
class UtilsTestCase(BaseTest): class UtilsTestCase(BaseTest):
@patch("repoapi.utils.executeAndReturnOutput")
@patch('repoapi.utils.executeAndReturnOutput')
def test_get_next_release_ko(self, ear): def test_get_next_release_ko(self, ear):
ear.return_value = [1, "", ""] ear.return_value = [1, "", ""]
val = utils.get_next_release("whatever") val = utils.get_next_release("whatever")
self.assertIsNone(val) self.assertIsNone(val)
@patch('repoapi.utils.executeAndReturnOutput') @patch("repoapi.utils.executeAndReturnOutput")
def test_get_next_release0(self, ear): def test_get_next_release0(self, ear):
ear.return_value = [0, "mr5.5.1\n", ""] ear.return_value = [0, "mr5.5.1\n", ""]
val = utils.get_next_release("master") val = utils.get_next_release("master")
self.assertEquals(val, 'mr5.5.1') self.assertEqual(val, "mr5.5.1")
@patch('repoapi.utils.executeAndReturnOutput') @patch("repoapi.utils.executeAndReturnOutput")
def test_get_next_release1(self, ear): def test_get_next_release1(self, ear):
ear.return_value = [0, "mr5.4.2\n", ""] ear.return_value = [0, "mr5.4.2\n", ""]
val = utils.get_next_release("mr5.4") val = utils.get_next_release("mr5.4")
self.assertEquals(val, 'mr5.4.2') self.assertEqual(val, "mr5.4.2")
@patch('repoapi.utils.executeAndReturnOutput') @patch("repoapi.utils.executeAndReturnOutput")
def test_get_next_release2(self, ear): def test_get_next_release2(self, ear):
ear.return_value = [0, "\n", ""] ear.return_value = [0, "\n", ""]
val = utils.get_next_release("mr5.4") val = utils.get_next_release("mr5.4")
self.assertEquals(val, None) self.assertEqual(val, None)

@ -1,305 +1,315 @@
# Copyright (C) 2016 The Sipwise Team - http://sipwise.com # Copyright (C) 2016 The Sipwise Team - http://sipwise.com
#
# This program is free software: you can redistribute it and/or modify it # This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free # under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) # Software Foundation, either version 3 of the License, or (at your option)
# any later version. # any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT # This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details. # more details.
#
# You should have received a copy of the GNU General Public License along # You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>. # with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf import settings from django.conf import settings
from repoapi.models import JenkinsBuildInfo, WorkfrontNoteInfo
from repoapi.test.base import BaseTest
from mock import patch from mock import patch
from repoapi.models import JenkinsBuildInfo
from repoapi.models import WorkfrontNoteInfo
from repoapi.test.base import BaseTest
class WorkfrontNoteTestCase(BaseTest): class WorkfrontNoteTestCase(BaseTest):
def test_getID(self): def test_getID(self):
res = WorkfrontNoteInfo.getIds("jojo TT#0891 whatever") res = WorkfrontNoteInfo.getIds("jojo TT#0891 whatever")
self.assertCountEqual(res, ['0891']) self.assertCountEqual(res, ["0891"])
def test_getID_multiple(self): def test_getID_multiple(self):
res = WorkfrontNoteInfo.getIds("jojo TT#0891 whatever TT#0001") res = WorkfrontNoteInfo.getIds("jojo TT#0891 whatever TT#0001")
self.assertCountEqual(res, ['0891', '0001']) self.assertCountEqual(res, ["0891", "0001"])
def test_getID_multiple_duplicate(self): def test_getID_multiple_duplicate(self):
res = WorkfrontNoteInfo.getIds("jojo TT#0891 whatever TT#0001 TT#0891") res = WorkfrontNoteInfo.getIds("jojo TT#0891 whatever TT#0001 TT#0891")
self.assertCountEqual(res, ['0891', '0001']) self.assertCountEqual(res, ["0891", "0001"])
def test_getCommit(self): def test_getCommit(self):
res = WorkfrontNoteInfo.getCommit("1234567 TT#67676 whatever") res = WorkfrontNoteInfo.getCommit("1234567 TT#67676 whatever")
self.assertEquals(res, "1234567") self.assertEqual(res, "1234567")
def get_defaults(self): def get_defaults(self):
defaults = { defaults = {
'tag': "edc90cd9-37f3-4613-9748-ed05a32031c2", "tag": "edc90cd9-37f3-4613-9748-ed05a32031c2",
'projectname': "kamailio", "projectname": "kamailio",
'jobname': "kamailio-gerrit", "jobname": "kamailio-gerrit",
'buildnumber': 897, "buildnumber": 897,
'result': "SUCCESS", "result": "SUCCESS",
'job_url': "https://jenkins.mgm.sipwise.com/job/kamailio-gerrit/", "job_url": "https://jenkins.mgm.sipwise.com/job/kamailio-gerrit/",
'gerrit_patchset': "1", "gerrit_patchset": "1",
'gerrit_change': "2054", "gerrit_change": "2054",
'gerrit_eventtype': "patchset-created", "gerrit_eventtype": "patchset-created",
'param_tag': "none", "param_tag": "none",
'param_branch': "master", "param_branch": "master",
'param_release': "none", "param_release": "none",
'param_distribution': "wheezy", "param_distribution": "wheezy",
'param_ppa': "gerrit_MT10339_review2054", "param_ppa": "gerrit_MT10339_review2054",
'git_commit_msg': "7fg4567 TT#0001 whatever", "git_commit_msg": "7fg4567 TT#0001 whatever",
} }
return defaults return defaults
def get_non_gerrit_defaults(self): def get_non_gerrit_defaults(self):
defaults = self.get_defaults() defaults = self.get_defaults()
del defaults['gerrit_patchset'] del defaults["gerrit_patchset"]
del defaults['gerrit_change'] del defaults["gerrit_change"]
del defaults['gerrit_eventtype'] del defaults["gerrit_eventtype"]
return defaults return defaults
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_gerrit(self, wns, gnr, wsrt): def test_note_gerrit(self, wns, gnr, wsrt):
param = self.get_defaults() param = self.get_defaults()
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="2054"
gerrit_change="2054") )
self.assertEquals(gri.count(), 0) self.assertEqual(gri.count(), 0)
param['jobname'] = "kamailio-get-code" param["jobname"] = "kamailio-get-code"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="2054"
gerrit_change="2054") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "%s.git[%s] review created %s " % ( msg = "%s.git[%s] review created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GERRIT_URL.format("2054")) settings.GERRIT_URL.format("2054"),
)
wsrt.assert_not_called() wsrt.assert_not_called()
gnr.assert_not_called() gnr.assert_not_called()
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_merge(self, wns, gnr, wsrt): def test_note_merge(self, wns, gnr, wsrt):
param = self.get_defaults() param = self.get_defaults()
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="2054"
gerrit_change="2054") )
self.assertEquals(gri.count(), 0) self.assertEqual(gri.count(), 0)
param['jobname'] = "kamailio-get-code" param["jobname"] = "kamailio-get-code"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001",
gerrit_change="2054", gerrit_change="2054",
eventtype='patchset-created') eventtype="patchset-created",
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 0) self.assertEqual(gri.count(), 0)
msg = "%s.git[%s] review created %s " % ( msg = "%s.git[%s] review created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GERRIT_URL.format("2054")) settings.GERRIT_URL.format("2054"),
)
wsrt.assert_not_called() wsrt.assert_not_called()
gnr.assert_not_called() gnr.assert_not_called()
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)
param['jobname'] = "kamailio-get-code" param["jobname"] = "kamailio-get-code"
param['buildnumber'] = 898 param["buildnumber"] = 898
param['gerrit_eventtype'] = "change-merged" param["gerrit_eventtype"] = "change-merged"
gnr.return_value = "mr5.5.1" gnr.return_value = "mr5.5.1"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001",
gerrit_change="2054", gerrit_change="2054",
eventtype='change-merged') eventtype="change-merged",
self.assertEquals(gri.count(), 1) )
self.assertEqual(gri.count(), 1)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="2054"
gerrit_change="2054") )
self.assertEquals(gri.count(), 2) self.assertEqual(gri.count(), 2)
msg = "%s.git[%s] review merged %s " % ( msg = "%s.git[%s] review merged %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GERRIT_URL.format("2054")) settings.GERRIT_URL.format("2054"),
)
wsrt.assert_called_once_with("0001", "mr5.5.1") wsrt.assert_called_once_with("0001", "mr5.5.1")
gnr.assert_called_once_with("master") gnr.assert_called_once_with("master")
wns.assert_called_with("0001", msg) wns.assert_called_with("0001", msg)
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_commit(self, wns, gnr, wsrt): def test_note_commit(self, wns, gnr, wsrt):
param = self.get_non_gerrit_defaults() param = self.get_non_gerrit_defaults()
param['jobname'] = 'kamailio-get-code' param["jobname"] = "kamailio-get-code"
gnr.return_value = "mr5.5.1" gnr.return_value = "mr5.5.1"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
param['jobname'] = "kamailio-binaries" param["jobname"] = "kamailio-binaries"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "%s.git[%s] commit created %s " % ( msg = "%s.git[%s] commit created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GITWEB_URL.format("kamailio", "7fg4567")) settings.GITWEB_URL.format("kamailio", "7fg4567"),
)
wsrt.assert_called_once_with("0001", "mr5.5.1") wsrt.assert_called_once_with("0001", "mr5.5.1")
gnr.assert_called_once_with("master") gnr.assert_called_once_with("master")
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_commit_mrXX(self, wns, gnr, wsrt): def test_note_commit_mrXX(self, wns, gnr, wsrt):
param = self.get_non_gerrit_defaults() param = self.get_non_gerrit_defaults()
param['jobname'] = 'kamailio-get-code' param["jobname"] = "kamailio-get-code"
param['param_branch'] = 'mr5.5' param["param_branch"] = "mr5.5"
param['param_release'] = 'release-mr5.5-update' param["param_release"] = "release-mr5.5-update"
gnr.return_value = "mr5.5.2" gnr.return_value = "mr5.5.2"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
param['jobname'] = "kamailio-binaries" param["jobname"] = "kamailio-binaries"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "%s.git[%s] commit created %s " % ( msg = "%s.git[%s] commit created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GITWEB_URL.format("kamailio", "7fg4567")) settings.GITWEB_URL.format("kamailio", "7fg4567"),
)
wsrt.assert_called_once_with("0001", "mr5.5.2") wsrt.assert_called_once_with("0001", "mr5.5.2")
gnr.assert_called_once_with("mr5.5") gnr.assert_called_once_with("mr5.5")
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_commit_mrXXX(self, wns, gnr, wsrt): def test_note_commit_mrXXX(self, wns, gnr, wsrt):
param = self.get_non_gerrit_defaults() param = self.get_non_gerrit_defaults()
param['jobname'] = 'kamailio-get-code' param["jobname"] = "kamailio-get-code"
param['param_branch'] = 'mr5.5.2' param["param_branch"] = "mr5.5.2"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
param['jobname'] = "kamailio-binaries" param["jobname"] = "kamailio-binaries"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "%s.git[%s] commit created %s " % ( msg = "%s.git[%s] commit created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GITWEB_URL.format("kamailio", "7fg4567")) settings.GITWEB_URL.format("kamailio", "7fg4567"),
)
wsrt.assert_called_once_with("0001", "mr5.5.2") wsrt.assert_called_once_with("0001", "mr5.5.2")
gnr.assert_not_called() gnr.assert_not_called()
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_commit_next_distri(self, wns, gnr, wsrt): def test_note_commit_next_distri(self, wns, gnr, wsrt):
param = self.get_non_gerrit_defaults() param = self.get_non_gerrit_defaults()
param['jobname'] = 'kamailio-get-code' param["jobname"] = "kamailio-get-code"
param['param_branch'] = 'stretch/master' param["param_branch"] = "stretch/master"
param['param_distribution'] = 'stretch' param["param_distribution"] = "stretch"
gnr.return_value = '' gnr.return_value = ""
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
param['jobname'] = "kamailio-binaries" param["jobname"] = "kamailio-binaries"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "%s.git[%s] commit created %s " % ( msg = "%s.git[%s] commit created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GITWEB_URL.format("kamailio", "7fg4567")) settings.GITWEB_URL.format("kamailio", "7fg4567"),
)
gnr.assert_called_once_with("stretch/master") gnr.assert_called_once_with("stretch/master")
self.assertCountEqual(wsrt.mock_calls, []) self.assertCountEqual(wsrt.mock_calls, [])
wsrt.assert_not_called() wsrt.assert_not_called()
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)
@patch('repoapi.utils.workfront_set_release_target') @patch("repoapi.utils.workfront_set_release_target")
@patch('repoapi.utils.get_next_release') @patch("repoapi.utils.get_next_release")
@patch('repoapi.utils.workfront_note_send') @patch("repoapi.utils.workfront_note_send")
def test_note_commit_non_ngcp(self, wns, gnr, wsrt): def test_note_commit_non_ngcp(self, wns, gnr, wsrt):
param = self.get_non_gerrit_defaults() param = self.get_non_gerrit_defaults()
param['projectname'] = 'fake' param["projectname"] = "fake"
param['jobname'] = 'fake-get-code' param["jobname"] = "fake-get-code"
param['param_branch'] = 'mr5.5.2' param["param_branch"] = "mr5.5.2"
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
param['jobname'] = "fake-binaries" param["jobname"] = "fake-binaries"
param['buildnumber'] = 897 param["buildnumber"] = 897
JenkinsBuildInfo.objects.create(**param) JenkinsBuildInfo.objects.create(**param)
gri = WorkfrontNoteInfo.objects.filter( gri = WorkfrontNoteInfo.objects.filter(
workfront_id="0001", workfront_id="0001", gerrit_change="7fg4567"
gerrit_change="7fg4567") )
self.assertEquals(gri.count(), 1) self.assertEqual(gri.count(), 1)
msg = "%s.git[%s] commit created %s " % ( msg = "%s.git[%s] commit created %s " % (
param['projectname'], param["projectname"],
param['param_branch'], param["param_branch"],
settings.GITWEB_URL.format("fake", "7fg4567")) settings.GITWEB_URL.format("fake", "7fg4567"),
)
wsrt.assert_not_called() wsrt.assert_not_called()
gnr.assert_not_called() gnr.assert_not_called()
wns.assert_called_once_with("0001", msg) wns.assert_called_once_with("0001", msg)

Loading…
Cancel
Save