mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-23 18:21:42 +08:00
Add support for KojiResolver in component reuse code.
In this commit, when component reuse code finds out that the base module uses KojiResolver, it uses the `KojiResolver.get_buildrequired_modules` method to find out possible modules to reuse and limits the original query just by the IDs of these modules. In order to do that, this commit splits the original `KojiResolver.get_buildrequired_modulemds` into two methods: - The `get_buildrequired_modules` returning the ModuleBuilds. - The `get_buildrequired_modulemds` calling the `get_buildrequired_modules` and returning modulemd metadata.
This commit is contained in:
@@ -98,7 +98,7 @@ class TestLocalResolverModule:
|
||||
|
||||
assert result == []
|
||||
koji_session.listTagged.assert_called_with(
|
||||
'foo-test', inherit=True, package='testmodule', type='module', event=123)
|
||||
"foo-test", inherit=True, package="testmodule", type="module", event=123)
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
def test_get_buildrequired_modulemds_multiple_streams(self, ClientSession, db_session):
|
||||
@@ -107,12 +107,12 @@ class TestLocalResolverModule:
|
||||
# We will ask for testmodule:master, but there is also testmodule:2 in a tag.
|
||||
koji_session.listTagged.return_value = [
|
||||
{
|
||||
'build_id': 123, 'name': 'testmodule', 'version': '2',
|
||||
'release': '820181219174508.9edba152', 'tag_name': 'foo-test'
|
||||
"build_id": 123, "name": "testmodule", "version": "2",
|
||||
"release": "820181219174508.9edba152", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20170109091357.7c29193d', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20170109091357.7c29193d", "tag_name": "foo-test"
|
||||
}]
|
||||
|
||||
self._create_test_modules(db_session)
|
||||
@@ -131,12 +131,12 @@ class TestLocalResolverModule:
|
||||
# ValueError later.
|
||||
koji_session.listTagged.return_value = [
|
||||
{
|
||||
'build_id': 123, 'name': 'testmodule', 'version': '2',
|
||||
'release': '820181219174508.9edba152', 'tag_name': 'foo-test'
|
||||
"build_id": 123, "name": "testmodule", "version": "2",
|
||||
"release": "820181219174508.9edba152", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20170109091357.7c29193d', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20170109091357.7c29193d", "tag_name": "foo-test"
|
||||
}]
|
||||
|
||||
self._create_test_modules(db_session)
|
||||
@@ -156,20 +156,20 @@ class TestLocalResolverModule:
|
||||
# ValueError later.
|
||||
koji_session.listTagged.return_value = [
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20160110091357.7c29193d', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20160110091357.7c29193d", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20170109091357.7c29193d', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20170109091357.7c29193d", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20170109091357.7c29193e', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20170109091357.7c29193e", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20160109091357.7c29193d', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20160109091357.7c29193d", "tag_name": "foo-test"
|
||||
}]
|
||||
|
||||
self._create_test_modules(db_session)
|
||||
@@ -182,6 +182,29 @@ class TestLocalResolverModule:
|
||||
"testmodule:master:20170109091357:7c29193d",
|
||||
"testmodule:master:20170109091357:7c29193e"}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
def test_get_buildrequired_modules(self, ClientSession, db_session):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
# We will ask for testmodule:master, but there is also testmodule:2 in a tag.
|
||||
koji_session.listTagged.return_value = [
|
||||
{
|
||||
"build_id": 123, "name": "testmodule", "version": "2",
|
||||
"release": "820181219174508.9edba152", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20170109091357.7c29193d", "tag_name": "foo-test"
|
||||
}]
|
||||
|
||||
self._create_test_modules(db_session)
|
||||
platform = db_session.query(ModuleBuild).filter_by(stream="f30.1.3").one()
|
||||
resolver = mbs_resolver.GenericResolver.create(db_session, tests.conf, backend="koji")
|
||||
result = resolver.get_buildrequired_modules("testmodule", "master", platform.mmd())
|
||||
|
||||
nvrs = {m.nvr_string for m in result}
|
||||
assert nvrs == {"testmodule-master-20170109091357.7c29193d"}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
def test_filter_inherited(self, ClientSession, db_session):
|
||||
koji_session = ClientSession.return_value
|
||||
@@ -193,16 +216,16 @@ class TestLocalResolverModule:
|
||||
|
||||
builds = [
|
||||
{
|
||||
'build_id': 124, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20170110091357.7c29193d', 'tag_name': 'foo-test'
|
||||
"build_id": 124, "name": "testmodule", "version": "master",
|
||||
"release": "20170110091357.7c29193d", "tag_name": "foo-test"
|
||||
},
|
||||
{
|
||||
'build_id': 125, 'name': 'testmodule', 'version': 'master',
|
||||
'release': '20180109091357.7c29193d', 'tag_name': 'foo-test-parent'
|
||||
"build_id": 125, "name": "testmodule", "version": "master",
|
||||
"release": "20180109091357.7c29193d", "tag_name": "foo-test-parent"
|
||||
},
|
||||
{
|
||||
'build_id': 126, 'name': 'testmodule', 'version': '2',
|
||||
'release': '20180109091357.7c29193d', 'tag_name': 'foo-test-parent'
|
||||
"build_id": 126, "name": "testmodule", "version": "2",
|
||||
"release": "20180109091357.7c29193d", "tag_name": "foo-test-parent"
|
||||
}]
|
||||
|
||||
resolver = mbs_resolver.GenericResolver.create(db_session, tests.conf, backend="koji")
|
||||
|
||||
Reference in New Issue
Block a user