diff --git a/tests/test_scheduler/test_modules/test_wait.py b/tests/test_scheduler/test_module_wait.py similarity index 95% rename from tests/test_scheduler/test_modules/test_wait.py rename to tests/test_scheduler/test_module_wait.py index 945a0df0..5f60c3f6 100644 --- a/tests/test_scheduler/test_modules/test_wait.py +++ b/tests/test_scheduler/test_module_wait.py @@ -26,7 +26,7 @@ import mock import rida.scheduler.handlers.modules -class TestWait(unittest.TestCase): +class TestModuleWait(unittest.TestCase): def setUp(self): self.config = mock.Mock() @@ -36,7 +36,7 @@ class TestWait(unittest.TestCase): @mock.patch('rida.builder.KojiModuleBuilder') @mock.patch('rida.database.ModuleBuild.from_fedmsg') @mock.patch('rida.pdc.get_pdc_client_session') - def test_init_basic(self, pdc, from_fedmsg, KojiModuleBuilder): + def test_wait_basic(self, pdc, from_fedmsg, KojiModuleBuilder): builder = mock.Mock() KojiModuleBuilder.return_value = builder mocked_module_build = mock.Mock() diff --git a/tests/test_scheduler/test_modules/__init__.py b/tests/test_scheduler/test_modules/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/test_scheduler/test_repo_done.py b/tests/test_scheduler/test_repo_done.py new file mode 100644 index 00000000..d010ab0a --- /dev/null +++ b/tests/test_scheduler/test_repo_done.py @@ -0,0 +1,70 @@ +# Copyright (c) 2016 Red Hat, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Written by Ralph Bean + +import unittest +import mock + +import rida.scheduler.handlers.repos + + +class TestRepoDone(unittest.TestCase): + + def setUp(self): + self.config = mock.Mock() + self.config.dist_git_url = 'dist_git_url' + + self.session = mock.Mock() + self.fn = rida.scheduler.handlers.repos.done + + @mock.patch('rida.database.ModuleBuild.get_active_by_koji_tag') + def test_no_match(self, get_active_by_koji_tag): + """ Test that when a repo msg hits us and we have no match, + that we do nothing gracefully. + """ + get_active_by_koji_tag.return_value = None + msg = { + 'topic': 'org.fedoraproject.prod.buildsys.repo.done', + 'msg': {'tag': 'no matches for this...'}, + } + self.fn(config=self.config, session=self.session, msg=msg) + + @mock.patch('rida.builder.KojiModuleBuilder.build') + @mock.patch('rida.builder.KojiModuleBuilder.buildroot_resume') + @mock.patch('rida.database.ModuleBuild.get_active_by_koji_tag') + def test_a_single_match(self, get_active_by_koji_tag, resume, build_fn): + """ Test that when a repo msg hits us and we have no match, + that we do nothing gracefully. + """ + component_build = mock.Mock() + component_build.package = 'foo' + component_build.gitref = 'beef' + component_build.state = None + module_build = mock.Mock() + module_build.component_builds = [component_build] + + get_active_by_koji_tag.return_value = module_build + msg = { + 'topic': 'org.fedoraproject.prod.buildsys.repo.done', + 'msg': {'tag': 'no matches for this...'}, + } + self.fn(config=self.config, session=self.session, msg=msg) + build_fn.assert_called_once_with('TODO', 'dist_git_url/rpms/foo?#beef')