Clear up module_build_service.messaging

Message classes and FedmsgMessageParser are moved into dedicated Python module
under scheduler/ directory.

FedmsgMessageParser is decoupled from messaging.py by initializing a parser
object with known fedmsg services. This decouple avoids cycle import between
parser.py and messaging.py.

Signed-off-by: Chenxiong Qi <cqi@redhat.com>
This commit is contained in:
Chenxiong Qi
2019-10-28 18:22:25 +08:00
committed by mprahl
parent fca0e354c1
commit 807acc2fb6
26 changed files with 493 additions and 471 deletions

View File

@@ -17,7 +17,7 @@ import module_build_service.utils
from module_build_service.errors import Forbidden
from module_build_service import models, conf, build_logs
from module_build_service.db_session import db_session
from module_build_service.scheduler import make_simple_stop_condition
from module_build_service.scheduler.local import make_simple_stop_condition
from mock import patch, PropertyMock, Mock, MagicMock
from werkzeug.datastructures import FileStorage
@@ -29,7 +29,7 @@ import itertools
from module_build_service.builder.base import GenericBuilder
from module_build_service.builder.KojiModuleBuilder import KojiModuleBuilder
from module_build_service.messaging import MBSModule
from module_build_service.scheduler import events
from tests import (
app, clean_database, read_staged_data, staged_data_filename
)
@@ -232,7 +232,7 @@ class FakeModuleBuilder(GenericBuilder):
return {"name": self.tag_name + "-build"}
def _send_repo_done(self):
msg = module_build_service.messaging.KojiRepoChange(
msg = events.KojiRepoChange(
msg_id="a faked internal message", repo_tag=self.tag_name + "-build")
module_build_service.scheduler.consumer.work_queue_put(msg)
@@ -241,14 +241,14 @@ class FakeModuleBuilder(GenericBuilder):
tag = self.tag_name
else:
tag = self.tag_name + "-build"
msg = module_build_service.messaging.KojiTagChange(
msg = events.KojiTagChange(
msg_id="a faked internal message", tag=tag, artifact=artifact, nvr=nvr)
module_build_service.scheduler.consumer.work_queue_put(msg)
def _send_build_change(self, state, name, build_id):
# build_id=1 and task_id=1 are OK here, because we are building just
# one RPM at the time.
msg = module_build_service.messaging.KojiBuildChange(
msg = events.KojiBuildChange(
msg_id="a faked internal message",
build_id=build_id,
task_id=build_id,
@@ -299,7 +299,7 @@ class FakeModuleBuilder(GenericBuilder):
nvr_dict = kobo.rpmlib.parse_nvr(component_build.nvr)
# Send a message stating the build is complete
msgs.append(
module_build_service.messaging.KojiBuildChange(
events.KojiBuildChange(
"recover_orphaned_artifact: fake message",
randint(1, 9999999),
component_build.task_id,
@@ -312,7 +312,7 @@ class FakeModuleBuilder(GenericBuilder):
)
# Send a message stating that the build was tagged in the build tag
msgs.append(
module_build_service.messaging.KojiTagChange(
events.KojiTagChange(
"recover_orphaned_artifact: fake message",
component_build.module_build.koji_tag + "-build",
component_build.package,
@@ -339,7 +339,7 @@ def cleanup_moksha():
class BaseTestBuild:
def run_scheduler(self, msgs=None, stop_condition=None):
module_build_service.scheduler.main(
module_build_service.scheduler.local.main(
msgs or [],
stop_condition or make_simple_stop_condition()
)
@@ -891,7 +891,7 @@ class TestBuild(BaseTestBuild):
Stop the scheduler when the module is built or when we try to build
more components than the num_concurrent_builds.
"""
main_stop = module_build_service.scheduler.make_simple_stop_condition()
main_stop = make_simple_stop_condition()
num_building = (
db_session.query(models.ComponentBuild)
.filter_by(state=koji.BUILD_STATES["BUILDING"])
@@ -1092,7 +1092,7 @@ class TestBuild(BaseTestBuild):
from module_build_service.db_session import db_session
# Create a dedicated database session for scheduler to avoid hang
self.run_scheduler(msgs=[MBSModule("local module build", 3, 1)])
self.run_scheduler(msgs=[events.MBSModule("local module build", 3, 1)])
reused_component_ids = {
"module-build-macros": None,
@@ -1171,7 +1171,7 @@ class TestBuild(BaseTestBuild):
FakeModuleBuilder.on_buildroot_add_artifacts_cb = on_buildroot_add_artifacts_cb
self.run_scheduler(msgs=[MBSModule("local module build", 3, 1)])
self.run_scheduler(msgs=[events.MBSModule("local module build", 3, 1)])
# All components should be built and module itself should be in "done"
# or "ready" state.
@@ -1742,7 +1742,7 @@ class TestBuild(BaseTestBuild):
cleanup_moksha()
module = models.ModuleBuild.get_by_id(db_session, module_build_id)
msgs = [
module_build_service.messaging.KojiRepoChange(
events.KojiRepoChange(
msg_id="a faked internal message", repo_tag=module.koji_tag + "-build"
)
]

View File

@@ -17,6 +17,7 @@ import module_build_service.builder
from module_build_service import Modulemd
from module_build_service.db_session import db_session
from module_build_service.utils.general import mmd_to_str
from module_build_service.scheduler import events
import pytest
from mock import patch, MagicMock
@@ -150,7 +151,7 @@ class TestKojiBuilder:
db_session.commit()
assert len(actual) == 3
assert type(actual[0]) == module_build_service.messaging.KojiBuildChange
assert type(actual[0]) == events.KojiBuildChange
assert actual[0].build_id == 91
assert actual[0].task_id == 12345
assert actual[0].build_new_state == koji.BUILD_STATES["COMPLETE"]
@@ -158,10 +159,10 @@ class TestKojiBuilder:
assert actual[0].build_version == "1.0"
assert actual[0].build_release == "1.module+e0095747"
assert actual[0].module_build_id == 4
assert type(actual[1]) == module_build_service.messaging.KojiTagChange
assert type(actual[1]) == events.KojiTagChange
assert actual[1].tag == "module-foo-build"
assert actual[1].artifact == "rubygem-rails"
assert type(actual[2]) == module_build_service.messaging.KojiTagChange
assert type(actual[2]) == events.KojiTagChange
assert actual[2].tag == "module-foo"
assert actual[2].artifact == "rubygem-rails"
assert component_build.state == koji.BUILD_STATES["COMPLETE"]
@@ -205,7 +206,7 @@ class TestKojiBuilder:
db_session.commit()
assert len(actual) == 1
assert type(actual[0]) == module_build_service.messaging.KojiBuildChange
assert type(actual[0]) == events.KojiBuildChange
assert actual[0].build_id == 91
assert actual[0].task_id == 12345
assert actual[0].build_new_state == koji.BUILD_STATES["COMPLETE"]
@@ -259,7 +260,7 @@ class TestKojiBuilder:
db_session.commit()
assert len(actual) == 1
assert type(actual[0]) == module_build_service.messaging.KojiBuildChange
assert type(actual[0]) == events.KojiBuildChange
assert actual[0].build_id == 91
assert actual[0].task_id == 12345
assert actual[0].build_new_state == koji.BUILD_STATES["COMPLETE"]

View File

@@ -149,7 +149,7 @@ class TestCommandBuildModuleLocally:
finally:
app.config["SQLALCHEMY_DATABASE_URI"] = original_db_uri
@patch("module_build_service.scheduler.main")
@patch("module_build_service.scheduler.local.main")
def test_set_stream(self, main):
cli_cmd = [
"mbs-manager", "build_module_locally",
@@ -159,9 +159,9 @@ class TestCommandBuildModuleLocally:
self._run_manager_wrapper(cli_cmd)
# Since module_build_service.scheduler.main is mocked, MBS does not
# really build the testmodule for this test. Following lines assert the
# fact:
# Since module_build_service.scheduler.local.main is mocked, MBS does
# not really build the testmodule for this test. Following lines assert
# the fact:
# Module testmodule-local-build is expanded and stored into database,
# and this build has buildrequires platform:f28 and requires
# platform:f28.
@@ -211,7 +211,7 @@ class TestCommandBuildModuleLocally:
# We don't run consumer actually, but it could be patched to mark some
# module build failed for test purpose.
with patch("module_build_service.scheduler.main",
with patch("module_build_service.scheduler.local.main",
side_effect=main_side_effect):
with pytest.raises(RuntimeError, match="Module build failed"):
self._run_manager_wrapper(cli_cmd)

View File

@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# SPDX-License-Identifier: MIT
from module_build_service import messaging
from module_build_service.messaging import KojiRepoChange # noqa
from module_build_service.scheduler.parser import FedmsgMessageParser
class TestFedmsgMessaging:
@@ -25,7 +26,8 @@ class TestFedmsgMessaging:
"topic": "org.fedoraproject.prod.buildsys.build.state.change",
}
msg = messaging.FedmsgMessageParser().parse(buildsys_state_change_msg)
parser = FedmsgMessageParser(messaging.known_fedmsg_services)
msg = parser.parse(buildsys_state_change_msg)
assert msg.build_id == 614503
assert msg.build_new_state == 1
@@ -49,7 +51,8 @@ class TestFedmsgMessaging:
"topic": "org.fedoraproject.prod.buildsys.tag",
}
msg = messaging.FedmsgMessageParser().parse(buildsys_tag_msg)
parser = FedmsgMessageParser(messaging.known_fedmsg_services)
msg = parser.parse(buildsys_tag_msg)
assert msg.tag == "module-debugging-tools-master-20170405115403-build"
assert msg.artifact == "module-build-macros"
@@ -68,6 +71,7 @@ class TestFedmsgMessaging:
"topic": "org.fedoraproject.prod.buildsys.repo.done",
}
msg = messaging.FedmsgMessageParser().parse(buildsys_tag_msg)
parser = FedmsgMessageParser(messaging.known_fedmsg_services)
msg = parser.parse(buildsys_tag_msg)
assert msg.repo_tag == "module-f0f7e44f3c6cccab-build"

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: MIT
from mock import patch, MagicMock
from module_build_service.scheduler.consumer import MBSConsumer
from module_build_service.messaging import KojiTagChange, KojiRepoChange
from module_build_service.scheduler.events import KojiTagChange, KojiRepoChange
class TestConsumer:

View File

@@ -12,6 +12,7 @@ from module_build_service import build_logs
from module_build_service.db_session import db_session
from module_build_service.models import ModuleBuild
from module_build_service.utils.general import mmd_to_str, load_mmd
from module_build_service.scheduler.events import MBSModule
class TestModuleInit:
@@ -70,10 +71,7 @@ class TestModuleInit:
platform_build.modulemd = mmd_to_str(mmd)
db_session.commit()
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="init"
)
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="init")
self.fn(config=conf, msg=msg)
build = ModuleBuild.get_by_id(db_session, 2)
@@ -114,8 +112,7 @@ class TestModuleInit:
get_latest_error=RuntimeError("Failed in mocked_scm_get_latest")
)
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="init")
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="init")
self.fn(config=conf, msg=msg)
build = ModuleBuild.get_by_id(db_session, 2)
@@ -141,8 +138,7 @@ class TestModuleInit:
scmurl = "git://pkgs.domain.local/modules/includedmodule?#da95886"
ModuleBuild.create(
db_session, conf, "includemodule", "1", 3, mmd_to_str(mmd), scmurl, "mprahl")
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=3, module_build_state="init")
msg = MBSModule(msg_id=None, module_build_id=3, module_build_state="init")
self.fn(config=conf, msg=msg)
build = ModuleBuild.get_by_id(db_session, 3)
assert build.state == 1
@@ -177,8 +173,7 @@ class TestModuleInit:
"7035bd33614972ac66559ac1fdd019ff6027ad22",
get_latest_raise=True,
)
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="init")
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="init")
build = ModuleBuild.get_by_id(db_session, 2)
mocked_from_module_event.return_value = build

View File

@@ -12,6 +12,7 @@ import module_build_service.resolver
from module_build_service import build_logs, Modulemd
from module_build_service.db_session import db_session
from module_build_service.models import ComponentBuild, ModuleBuild
from module_build_service.scheduler.events import MBSModule
base_dir = os.path.dirname(os.path.dirname(__file__))
@@ -40,7 +41,7 @@ class TestModuleWait:
create_builder.return_value = builder
module_build_id = db_session.query(ModuleBuild).first().id
msg = module_build_service.messaging.MBSModule(
msg = MBSModule(
msg_id=None,
module_build_id=module_build_id,
module_build_state="some state")
@@ -80,8 +81,7 @@ class TestModuleWait:
resolver.get_module_tag.return_value = "module-testmodule-master-20170109091357"
generic_resolver.create.return_value = resolver
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="some state")
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="some state")
module_build_service.scheduler.handlers.modules.wait(
config=conf, msg=msg)
@@ -127,8 +127,7 @@ class TestModuleWait:
resolver.get_module_tag.return_value = "module-testmodule-master-20170109091357"
generic_resolver.create.return_value = resolver
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="some state")
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="some state")
module_build_service.scheduler.handlers.modules.wait(
config=conf, msg=msg)
@@ -173,8 +172,7 @@ class TestModuleWait:
}
generic_resolver.create.return_value = resolver
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="some state")
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="some state")
module_build_service.scheduler.handlers.modules.wait(
config=conf, msg=msg)
@@ -244,9 +242,7 @@ class TestModuleWait:
new=koji_cg_tag_build,
):
generic_resolver.create.return_value = resolver
msg = module_build_service.messaging.MBSModule(
msg_id=None, module_build_id=2, module_build_state="some state"
)
msg = MBSModule(msg_id=None, module_build_id=2, module_build_state="some state")
module_build_service.scheduler.handlers.modules.wait(
config=conf, msg=msg
)

View File

@@ -7,9 +7,9 @@ from module_build_service import models, conf
from tests import clean_database, make_module_in_db
import mock
import koji
from module_build_service.scheduler.producer import MBSProducer
from module_build_service.messaging import KojiTagChange
from module_build_service.db_session import db_session
from module_build_service.scheduler.producer import MBSProducer
from module_build_service.scheduler.events import KojiTagChange
import six.moves.queue as queue
from datetime import datetime, timedelta

View File

@@ -7,6 +7,7 @@ import module_build_service.scheduler.handlers.repos
import module_build_service.models
from module_build_service.db_session import db_session
from module_build_service.models import ComponentBuild
from module_build_service.scheduler.events import KojiRepoChange
from tests import conf, scheduler_init_data
@@ -19,7 +20,7 @@ class TestRepoDone:
"""
scheduler_init_data()
from_repo_done_event.return_value = None
msg = module_build_service.messaging.KojiRepoChange(
msg = KojiRepoChange(
"no matches for this...", "2016-some-nonexistent-build")
module_build_service.scheduler.handlers.repos.done(config=conf, msg=msg)
@@ -56,7 +57,7 @@ class TestRepoDone:
get_session.return_value = mock.Mock(), "development"
build_fn.return_value = 1234, 1, "", None
msg = module_build_service.messaging.KojiRepoChange(
msg = KojiRepoChange(
"some_msg_id", "module-testmodule-master-20170109091357-7c29193d-build")
module_build_service.scheduler.handlers.repos.done(config=conf, msg=msg)
build_fn.assert_called_once_with(
@@ -116,7 +117,7 @@ class TestRepoDone:
finalizer.side_effect = mocked_finalizer
msg = module_build_service.messaging.KojiRepoChange(
msg = KojiRepoChange(
"some_msg_id", "module-testmodule-master-20170109091357-7c29193d-build")
module_build_service.scheduler.handlers.repos.done(config=conf, msg=msg)
@@ -156,7 +157,7 @@ class TestRepoDone:
config.return_value = mock.Mock(), "development"
build_fn.return_value = None, 4, "Failed to submit artifact tangerine to Koji", None
msg = module_build_service.messaging.KojiRepoChange(
msg = KojiRepoChange(
"some_msg_id", "module-testmodule-master-20170109091357-7c29193d-build")
module_build_service.scheduler.handlers.repos.done(config=conf, msg=msg)
build_fn.assert_called_once_with(
@@ -182,7 +183,7 @@ class TestRepoDone:
component_build.tagged = False
db_session.commit()
msg = module_build_service.messaging.KojiRepoChange(
msg = KojiRepoChange(
"some_msg_id", "module-testmodule-master-20170109091357-7c29193d-build")
module_build_service.scheduler.handlers.repos.done(config=conf, msg=msg)
@@ -222,7 +223,7 @@ class TestRepoDone:
config.return_value = mock.Mock(), "development"
build_fn.return_value = None, 4, "Failed to submit artifact x to Koji", None
msg = module_build_service.messaging.KojiRepoChange(
msg = KojiRepoChange(
"some_msg_id", "module-testmodule-master-20170109091357-7c29193d-build")
module_build_service.scheduler.handlers.repos.done(config=conf, msg=msg)

View File

@@ -9,6 +9,8 @@ import module_build_service.messaging
import module_build_service.scheduler.handlers.repos
import module_build_service.scheduler.handlers.tags
import module_build_service.models
from module_build_service.scheduler.events import KojiTagChange
from tests import conf
from module_build_service.db_session import db_session
@@ -24,7 +26,7 @@ class TestTagTagged:
that we do nothing gracefully.
"""
from_tag_change_event.return_value = None
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"no matches for this...", "2016-some-nonexistent-build", "artifact", "artifact-1.2-1")
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
@@ -33,7 +35,7 @@ class TestTagTagged:
""" Test that when a tag msg hits us and we have no match,
that we do nothing gracefully.
"""
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"artifact",
@@ -86,7 +88,7 @@ class TestTagTagged:
db_session.commit()
# Tag the first component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-Tangerine",
@@ -96,7 +98,7 @@ class TestTagTagged:
config=conf, msg=msg
)
# Tag the first component to the final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-Tangerine",
@@ -111,7 +113,7 @@ class TestTagTagged:
assert not koji_session.newRepo.called
# Tag the second component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-List-Compare",
@@ -126,7 +128,7 @@ class TestTagTagged:
assert not koji_session.newRepo.called
# Tag the first component to the final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-List-Compare",
@@ -182,7 +184,7 @@ class TestTagTagged:
db_session.commit()
# Tag the perl-List-Compare component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-Tangerine",
@@ -191,7 +193,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the perl-List-Compare component to final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-Tangerine",
@@ -252,7 +254,7 @@ class TestTagTagged:
db_session.commit()
# Tag the perl-List-Compare component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-List-Compare",
@@ -262,7 +264,7 @@ class TestTagTagged:
config=conf, msg=msg
)
# Tag the perl-List-Compare component to final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-List-Compare",
@@ -328,7 +330,7 @@ class TestTagTagged:
db_session.commit()
# Tag the first component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-Tangerine",
@@ -337,7 +339,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the first component to the final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-Tangerine",
@@ -351,7 +353,7 @@ class TestTagTagged:
assert not koji_session.newRepo.called
# Tag the second component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-List-Compare",
@@ -360,7 +362,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the second component to final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-List-Compare",
@@ -374,7 +376,7 @@ class TestTagTagged:
assert not koji_session.newRepo.called
# Tag the component from first batch to final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"module-build-macros",
@@ -383,7 +385,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the component from first batch to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"module-build-macros",
@@ -455,7 +457,7 @@ class TestTagTagged:
db_session.commit()
# Tag the perl-Tangerine component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-Tangerine",
@@ -465,7 +467,7 @@ class TestTagTagged:
config=conf, msg=msg)
assert not koji_session.newRepo.called
# Tag the perl-List-Compare component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-List-Compare",
@@ -474,7 +476,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the perl-List-Compare component to final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-List-Compare",
@@ -554,7 +556,7 @@ class TestTagTagged:
db_session.commit()
# Tag the first component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-Tangerine",
@@ -563,7 +565,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the first component to the final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-Tangerine",
@@ -572,7 +574,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the second component to the buildroot.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c-build",
"perl-List-Compare",
@@ -581,7 +583,7 @@ class TestTagTagged:
module_build_service.scheduler.handlers.tags.tagged(
config=conf, msg=msg)
# Tag the second component to the final tag.
msg = module_build_service.messaging.KojiTagChange(
msg = KojiTagChange(
"id",
"module-testmodule-master-20170219191323-c40c156c",
"perl-List-Compare",

View File

@@ -17,6 +17,7 @@ from module_build_service.errors import ProgrammingError, ValidationError, Unpro
from module_build_service.utils.reuse import get_reusable_module, get_reusable_component
from module_build_service.utils.general import load_mmd
from module_build_service.utils.submit import format_mmd
from module_build_service.scheduler.events import KojiBuildChange, KojiRepoChange
from tests import (
clean_database,
init_data,
@@ -1228,7 +1229,7 @@ class TestBatches:
# to BUILDING, so KojiBuildChange message handler handles the change
# properly.
for msg in further_work:
if type(msg) == module_build_service.messaging.KojiBuildChange:
if type(msg) == KojiBuildChange:
assert msg.build_new_state == koji.BUILD_STATES["COMPLETE"]
component_build = models.ComponentBuild.from_component_event(db_session, msg)
assert component_build.state == koji.BUILD_STATES["BUILDING"]
@@ -1236,12 +1237,12 @@ class TestBatches:
# When we handle these KojiBuildChange messages, MBS should tag all
# the components just once.
for msg in further_work:
if type(msg) == module_build_service.messaging.KojiBuildChange:
if type(msg) == KojiBuildChange:
module_build_service.scheduler.handlers.components.complete(conf, msg)
# Since we have reused all the components in the batch, there should
# be fake KojiRepoChange message.
assert type(further_work[-1]) == module_build_service.messaging.KojiRepoChange
assert type(further_work[-1]) == KojiRepoChange
# Check that packages have been tagged just once.
assert len(DummyModuleBuilder.TAGGED_COMPONENTS) == 2