From a755104bd40de2871cf52e523ee69d8e84192f5d Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Thu, 6 Jul 2017 21:02:32 -0400 Subject: [PATCH] Fix the test suite. We had some circular imports that caused the tests (and more?) to fail. I ran into this when looking at the tests for #583 and #595. --- module_build_service/builder/CoprModuleBuilder.py | 5 ++--- module_build_service/builder/KojiModuleBuilder.py | 2 -- module_build_service/builder/MockModuleBuilder.py | 9 ++++++--- module_build_service/builder/base.py | 2 -- module_build_service/builder/utils.py | 9 --------- module_build_service/scheduler/consumer.py | 8 ++++++++ 6 files changed, 16 insertions(+), 19 deletions(-) diff --git a/module_build_service/builder/CoprModuleBuilder.py b/module_build_service/builder/CoprModuleBuilder.py index 7c855eb0..ba085adf 100644 --- a/module_build_service/builder/CoprModuleBuilder.py +++ b/module_build_service/builder/CoprModuleBuilder.py @@ -38,11 +38,9 @@ from module_build_service import log from module_build_service.models import ModuleBuild import module_build_service.scm import module_build_service.utils -import module_build_service.scheduler -import module_build_service.scheduler.consumer from base import GenericBuilder -from utils import execute_cmd, fake_repo_done_message +from utils import execute_cmd from KojiModuleBuilder import KojiModuleBuilder logging.basicConfig(level=logging.DEBUG) @@ -174,6 +172,7 @@ class CoprModuleBuilder(GenericBuilder): # Start of a new batch of builds is triggered by buildsys.repo.done message. # However in Copr there is no such thing. Therefore we are going to fake # the message when builds are finished + from module_build_service.scheduler.consumer import fake_repo_done_message fake_repo_done_message(self.tag_name) def buildroot_add_repos(self, dependencies): diff --git a/module_build_service/builder/KojiModuleBuilder.py b/module_build_service/builder/KojiModuleBuilder.py index eede0abe..da559212 100644 --- a/module_build_service/builder/KojiModuleBuilder.py +++ b/module_build_service/builder/KojiModuleBuilder.py @@ -42,8 +42,6 @@ from OpenSSL.SSL import SysCallError from module_build_service import conf, log, db import module_build_service.scm import module_build_service.utils -import module_build_service.scheduler -import module_build_service.scheduler.consumer from module_build_service.builder.utils import execute_cmd from base import GenericBuilder diff --git a/module_build_service/builder/MockModuleBuilder.py b/module_build_service/builder/MockModuleBuilder.py index 892cedf2..1eb062a3 100644 --- a/module_build_service/builder/MockModuleBuilder.py +++ b/module_build_service/builder/MockModuleBuilder.py @@ -38,9 +38,11 @@ import module_build_service.scheduler import module_build_service.scheduler.consumer from base import GenericBuilder -from utils import (fake_repo_done_message, - create_local_repo_from_koji_tag, execute_cmd, - find_srpm) +from utils import ( + create_local_repo_from_koji_tag, + execute_cmd, + find_srpm, +) from KojiModuleBuilder import KojiModuleBuilder from module_build_service.models import ModuleBuild @@ -280,6 +282,7 @@ mdpolicy=group:primary self.groups.append("module-build-macros") self._write_mock_config() + from module_build_service.scheduler.consumer import fake_repo_done_message fake_repo_done_message(self.tag_name) def tag_artifacts(self, artifacts): diff --git a/module_build_service/builder/base.py b/module_build_service/builder/base.py index 51286198..499cb918 100644 --- a/module_build_service/builder/base.py +++ b/module_build_service/builder/base.py @@ -36,8 +36,6 @@ from module_build_service import conf, log from module_build_service import pdc import module_build_service.scm import module_build_service.utils -import module_build_service.scheduler -import module_build_service.scheduler.consumer """ diff --git a/module_build_service/builder/utils.py b/module_build_service/builder/utils.py index f4ab6bc2..fdbbd07f 100644 --- a/module_build_service/builder/utils.py +++ b/module_build_service/builder/utils.py @@ -8,7 +8,6 @@ import logging import urlgrabber.grabber as grabber import urlgrabber.progress as progress import module_build_service -import module_build_service.scheduler from module_build_service import log, scm, messaging @@ -50,14 +49,6 @@ def execute_cmd(args, stdout=None, stderr=None, cwd=None): return out, err -def fake_repo_done_message(tag_name): - msg = module_build_service.messaging.KojiRepoChange( - msg_id='a faked internal message', - repo_tag=tag_name + "-build", - ) - module_build_service.scheduler.consumer.work_queue_put(msg) - - def create_local_repo_from_koji_tag(config, tag, repo_dir, archs=None): """ Downloads the packages build for one of `archs` (defaults to ['x86_64', diff --git a/module_build_service/scheduler/consumer.py b/module_build_service/scheduler/consumer.py index a9a363fb..41667cc8 100644 --- a/module_build_service/scheduler/consumer.py +++ b/module_build_service/scheduler/consumer.py @@ -258,3 +258,11 @@ def work_queue_put(msg): """ Artificially put a message into the work queue of the consumer. """ consumer = get_global_consumer() consumer.incoming.put(msg) + + +def fake_repo_done_message(tag_name): + msg = module_build_service.messaging.KojiRepoChange( + msg_id='a faked internal message', + repo_tag=tag_name + "-build", + ) + work_queue_put(msg)