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):
ids, changelog = utils.parse_changelog("/tmp/fake.txt")
self.assertCountEqual(ids, ["345", "123"])
self.assertEquals(changelog.full_version, "3.8.7.4+0~mr3.8.7.4")
self.assertEquals(changelog.package, "ngcp-fake")
self.assertEqual(changelog.full_version, "3.8.7.4+0~mr3.8.7.4")
self.assertEqual(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.4")
self.assertEqual(val, "mr3.8.7.4")
def test_get_target_release_ko(self):
val = utils.get_target_release("3.8.7.4-1")
@ -81,11 +81,11 @@ class TestHotfixReleased(BaseTest):
gri = models.WorkfrontNoteInfo.objects.filter(
projectname=projectname, version=version
)
self.assertEquals(gri.count(), 2)
self.assertEqual(gri.count(), 2)
gri = models.WorkfrontNoteInfo.objects.filter(
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)
calls = [
call("345", msg),
@ -93,7 +93,7 @@ class TestHotfixReleased(BaseTest):
gri = models.WorkfrontNoteInfo.objects.filter(
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)
calls.append(call("123", msg))
wns.assert_has_calls(calls, any_order=True)

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

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

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

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

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

Loading…
Cancel
Save