mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-14 00:59:51 +08:00
Remove the koji.ClientSession backport
See https://pagure.io/koji/pull-request/1187 for context.
This commit is contained in:
@@ -24,7 +24,6 @@ from module_build_service import log, conf, models
|
||||
import module_build_service.scm
|
||||
import module_build_service.utils
|
||||
from module_build_service.builder.utils import execute_cmd
|
||||
from module_build_service.builder.koji_backports import ClientSession as KojiClientSession
|
||||
from module_build_service.db_session import db_session
|
||||
from module_build_service.errors import ProgrammingError
|
||||
|
||||
@@ -487,7 +486,7 @@ class KojiModuleBuilder(GenericBuilder):
|
||||
|
||||
address = koji_config.server
|
||||
log.info("Connecting to koji %r.", address)
|
||||
koji_session = KojiClientSession(address, opts=koji_config)
|
||||
koji_session = koji.ClientSession(address, opts=koji_config)
|
||||
|
||||
if not login:
|
||||
return koji_session
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# SPDX-License-Identifier: MIT
|
||||
# flake8: noqa
|
||||
import base64
|
||||
import traceback
|
||||
|
||||
import koji
|
||||
# Import krbV from here so we don't have to redo the whole try except that Koji does
|
||||
from koji import krbV, PythonImportError, AuthError, AUTHTYPE_KERB
|
||||
|
||||
|
||||
class ClientSession(koji.ClientSession):
|
||||
"""The koji.ClientSession class with patches from upstream."""
|
||||
|
||||
# This backport comes from https://pagure.io/koji/pull-request/1187
|
||||
def krb_login(self, principal=None, keytab=None, ccache=None, proxyuser=None, ctx=None):
|
||||
"""Log in using Kerberos. If principal is not None and keytab is
|
||||
not None, then get credentials for the given principal from the given keytab.
|
||||
If both are None, authenticate using existing local credentials (as obtained
|
||||
from kinit). ccache is the absolute path to use for the credential cache. If
|
||||
not specified, the default ccache will be used. If proxyuser is specified,
|
||||
log in the given user instead of the user associated with the Kerberos
|
||||
principal. The principal must be in the "ProxyPrincipals" list on
|
||||
the server side. ctx is the Kerberos context to use, and should be unique
|
||||
per thread. If ctx is not specified, the default context is used."""
|
||||
|
||||
try:
|
||||
# Silently try GSSAPI first
|
||||
if self.gssapi_login(principal, keytab, ccache, proxyuser=proxyuser):
|
||||
return True
|
||||
except Exception as e:
|
||||
if krbV:
|
||||
e_str = ''.join(traceback.format_exception_only(type(e), e))
|
||||
self.logger.debug('gssapi auth failed: %s', e_str)
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
|
||||
if not krbV:
|
||||
raise PythonImportError(
|
||||
"Please install python-krbV to use kerberos."
|
||||
)
|
||||
|
||||
if not ctx:
|
||||
ctx = krbV.default_context()
|
||||
|
||||
if ccache != None:
|
||||
ccache = krbV.CCache(name=ccache, context=ctx)
|
||||
else:
|
||||
ccache = ctx.default_ccache()
|
||||
|
||||
if principal != None:
|
||||
if keytab != None:
|
||||
cprinc = krbV.Principal(name=principal, context=ctx)
|
||||
keytab = krbV.Keytab(name=keytab, context=ctx)
|
||||
ccache.init(cprinc)
|
||||
ccache.init_creds_keytab(principal=cprinc, keytab=keytab)
|
||||
else:
|
||||
raise AuthError('cannot specify a principal without a keytab')
|
||||
else:
|
||||
# We're trying to log ourself in. Connect using existing credentials.
|
||||
cprinc = ccache.principal()
|
||||
|
||||
self.logger.debug('Authenticating as: %s', cprinc.name)
|
||||
sprinc = krbV.Principal(name=self._serverPrincipal(cprinc), context=ctx)
|
||||
|
||||
ac = krbV.AuthContext(context=ctx)
|
||||
ac.flags = krbV.KRB5_AUTH_CONTEXT_DO_SEQUENCE | krbV.KRB5_AUTH_CONTEXT_DO_TIME
|
||||
ac.rcache = ctx.default_rcache()
|
||||
|
||||
# create and encode the authentication request
|
||||
(ac, req) = ctx.mk_req(server=sprinc, client=cprinc,
|
||||
auth_context=ac, ccache=ccache,
|
||||
options=krbV.AP_OPTS_MUTUAL_REQUIRED)
|
||||
req_enc = base64.encodestring(req)
|
||||
|
||||
# ask the server to authenticate us
|
||||
(rep_enc, sinfo_enc, addrinfo) = self.callMethod('krbLogin', req_enc, proxyuser)
|
||||
# Set the addrinfo we received from the server
|
||||
# (necessary before calling rd_priv())
|
||||
# addrinfo is in (serveraddr, serverport, clientaddr, clientport)
|
||||
# format, so swap the pairs because clientaddr is now the local addr
|
||||
ac.addrs = tuple((addrinfo[2], addrinfo[3], addrinfo[0], addrinfo[1]))
|
||||
|
||||
# decode and read the reply from the server
|
||||
rep = base64.decodestring(rep_enc)
|
||||
ctx.rd_rep(rep, auth_context=ac)
|
||||
|
||||
# decode and decrypt the login info
|
||||
sinfo_priv = base64.decodestring(sinfo_enc)
|
||||
sinfo_str = ac.rd_priv(sinfo_priv)
|
||||
sinfo = dict(zip(['session-id', 'session-key'], sinfo_str.split()))
|
||||
|
||||
if not sinfo:
|
||||
self.logger.warn('No session info received')
|
||||
return False
|
||||
self.setSession(sinfo)
|
||||
|
||||
self.authtype = AUTHTYPE_KERB
|
||||
return True
|
||||
@@ -422,7 +422,7 @@ class TestKojiBuilder:
|
||||
assert mock_session.untagBuild.mock_calls == expected_calls
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_weights(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getLoggedInUser.return_value = {"id": 123}
|
||||
@@ -448,7 +448,7 @@ class TestKojiBuilder:
|
||||
session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_weights_no_task_id(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getLoggedInUser.return_value = {"id": 123}
|
||||
@@ -470,7 +470,7 @@ class TestKojiBuilder:
|
||||
session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_weights_no_build(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getLoggedInUser.return_value = {"id": 123}
|
||||
@@ -492,7 +492,7 @@ class TestKojiBuilder:
|
||||
session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_weights_listBuilds_failed(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getLoggedInUser.return_value = {"id": 123}
|
||||
@@ -512,7 +512,7 @@ class TestKojiBuilder:
|
||||
session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_weights_getPackageID_failed(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getLoggedInUser.return_value = {"id": 123}
|
||||
@@ -528,7 +528,7 @@ class TestKojiBuilder:
|
||||
session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_weights_getLoggedInUser_failed(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getAverageBuildDuration.return_value = None
|
||||
@@ -726,7 +726,7 @@ class TestKojiBuilder:
|
||||
]
|
||||
assert session.createBuildTarget.mock_calls == expected_calls
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_built_rpms_in_module_build(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.listTaggedRPMS.return_value = (
|
||||
@@ -817,7 +817,7 @@ class TestKojiBuilder:
|
||||
([], []),
|
||||
),
|
||||
)
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_filtered_rpms_on_self_dep(
|
||||
self, ClientSession, br_filtered_rpms, expected
|
||||
):
|
||||
@@ -910,7 +910,7 @@ class TestKojiBuilder:
|
||||
else:
|
||||
mock_koji_cg.koji_import.assert_not_called()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_anonymous_session(self, ClientSession):
|
||||
mbs_config = mock.Mock(koji_profile="koji", koji_config="conf/koji.conf")
|
||||
session = KojiModuleBuilder.get_session(mbs_config, login=False)
|
||||
@@ -918,14 +918,14 @@ class TestKojiBuilder:
|
||||
assert ClientSession.return_value.krb_login.assert_not_called
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_ensure_builder_use_a_logged_in_koji_session(self, ClientSession):
|
||||
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
|
||||
builder = KojiModuleBuilder(db_session, "owner", module_build, conf, "module-tag", [])
|
||||
builder.koji_session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_module_build_arches(self, ClientSession):
|
||||
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
|
||||
arches = "x86_64 i686 ppc64le aarch64 s390x"
|
||||
@@ -935,7 +935,7 @@ class TestKojiBuilder:
|
||||
assert " ".join(ret) == arches
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_module_build_arches_with_archless_tag(self, ClientSession):
|
||||
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
|
||||
session = ClientSession.return_value
|
||||
@@ -944,7 +944,7 @@ class TestKojiBuilder:
|
||||
assert ret == []
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_module_build_arches_without_tag(self, ClientSession):
|
||||
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
|
||||
module_build.koji_tag = None
|
||||
@@ -955,7 +955,7 @@ class TestKojiBuilder:
|
||||
session.assert_not_called()
|
||||
|
||||
@patch.dict("sys.modules", krbV=MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_module_build_arches_with_unknown_tag(self, ClientSession):
|
||||
module_build = module_build_service.models.ModuleBuild.get_by_id(db_session, 2)
|
||||
session = ClientSession.return_value
|
||||
|
||||
@@ -73,7 +73,7 @@ class TestBuild:
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
@patch("subprocess.Popen")
|
||||
@patch("module_build_service.builder.KojiContentGenerator.Modulemd")
|
||||
@patch("pkg_resources.get_distribution")
|
||||
@@ -138,7 +138,7 @@ class TestBuild:
|
||||
# Ensure an anonymous Koji session works
|
||||
koji_session.krb_login.assert_not_called()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
@patch("subprocess.Popen")
|
||||
@patch("module_build_service.builder.KojiContentGenerator.Modulemd")
|
||||
@patch("pkg_resources.get_distribution")
|
||||
@@ -205,7 +205,7 @@ class TestBuild:
|
||||
assert len(mmd.read()) == 254
|
||||
|
||||
@patch.dict("sys.modules", krbV=Mock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_tag_cg_build(self, ClientSession):
|
||||
""" Test that the CG build is tagged. """
|
||||
koji_session = ClientSession.return_value
|
||||
@@ -221,7 +221,7 @@ class TestBuild:
|
||||
koji_session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=Mock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_tag_cg_build_fallback_to_default_tag(self, ClientSession):
|
||||
""" Test that the CG build is tagged to default tag. """
|
||||
koji_session = ClientSession.return_value
|
||||
@@ -240,7 +240,7 @@ class TestBuild:
|
||||
koji_session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=Mock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_tag_cg_build_no_tag_set(self, ClientSession):
|
||||
""" Test that the CG build is not tagged when no tag set. """
|
||||
koji_session = ClientSession.return_value
|
||||
@@ -255,7 +255,7 @@ class TestBuild:
|
||||
koji_session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=Mock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_tag_cg_build_no_tag_available(self, ClientSession):
|
||||
""" Test that the CG build is not tagged when no tag available. """
|
||||
koji_session = ClientSession.return_value
|
||||
@@ -337,7 +337,7 @@ class TestBuild:
|
||||
"type": "file",
|
||||
}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_koji_rpms_in_tag(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
koji_session.getUser.return_value = GET_USER_RV
|
||||
@@ -427,7 +427,7 @@ class TestBuild:
|
||||
# Listing tagged RPMs does not require to log into a session
|
||||
koji_session.krb_login.assert_not_called()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_koji_rpms_in_tag_empty_tag(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
koji_session.getUser.return_value = GET_USER_RV
|
||||
@@ -439,7 +439,7 @@ class TestBuild:
|
||||
assert rpms == []
|
||||
koji_session.multiCall.assert_not_called()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_koji_rpms_in_tag_empty_headers(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
koji_session.getUser.return_value = GET_USER_RV
|
||||
@@ -966,7 +966,7 @@ class TestBuild:
|
||||
assert "%s:%s" % (mmd.get_module_name(), mmd.get_stream_name()) in requires
|
||||
|
||||
@patch.dict("sys.modules", krbV=Mock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
@patch("module_build_service.builder.KojiContentGenerator.KojiContentGenerator._tag_cg_build")
|
||||
@patch("module_build_service.builder.KojiContentGenerator.KojiContentGenerator._load_koji_tag")
|
||||
def test_koji_cg_koji_import(self, tag_loader, tagger, cl_session):
|
||||
|
||||
@@ -64,7 +64,7 @@ class TestLocalResolverModule:
|
||||
"testmodule:master:20170109091357:7c29193d",
|
||||
"testmodule:master:20170109091357:7c29193e"}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_buildrequired_modulemds_name_not_tagged(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
koji_session.getLastEvent.return_value = {"id": 123}
|
||||
@@ -82,7 +82,7 @@ class TestLocalResolverModule:
|
||||
koji_session.listTagged.assert_called_with(
|
||||
"foo-test", inherit=True, package="testmodule", type="module", event=123)
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_buildrequired_modulemds_multiple_streams(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
@@ -108,7 +108,7 @@ class TestLocalResolverModule:
|
||||
nsvcs = {m.get_nsvc() for m in result}
|
||||
assert nsvcs == {"testmodule:master:20170109091357:7c29193d"}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_buildrequired_modulemds_tagged_but_not_in_db(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
@@ -135,7 +135,7 @@ class TestLocalResolverModule:
|
||||
with pytest.raises(ValueError, match=expected_error):
|
||||
resolver.get_buildrequired_modulemds("testmodule", "2", platform.mmd())
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_buildrequired_modulemds_multiple_versions_contexts(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
@@ -172,7 +172,7 @@ class TestLocalResolverModule:
|
||||
"testmodule:master:20170109091357:7c29193d",
|
||||
"testmodule:master:20170109091357:7c29193e"}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_buildrequired_modules(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
@@ -198,7 +198,7 @@ class TestLocalResolverModule:
|
||||
nvrs = {m.nvr_string for m in result}
|
||||
assert nvrs == {"testmodule-master-20170109091357.7c29193d"}
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_filter_inherited(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class TestGetCorrespondingModuleBuild:
|
||||
def setup_method(self, method):
|
||||
clean_database()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_module_build_nvr_does_not_exist_in_koji(self, ClientSession):
|
||||
ClientSession.return_value.getBuild.return_value = None
|
||||
|
||||
@@ -37,13 +37,13 @@ class TestGetCorrespondingModuleBuild:
|
||||
{"extra": {"typeinfo": {"module": {}}}},
|
||||
],
|
||||
)
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_cannot_find_module_build_id_from_build_info(self, ClientSession, build_info):
|
||||
ClientSession.return_value.getBuild.return_value = build_info
|
||||
|
||||
assert get_corresponding_module_build("n-v-r") is None
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_corresponding_module_build_id_does_not_exist_in_db(self, ClientSession):
|
||||
fake_module_build_id, = db_session.query(func.max(ModuleBuild.id)).first()
|
||||
|
||||
@@ -53,7 +53,7 @@ class TestGetCorrespondingModuleBuild:
|
||||
|
||||
assert get_corresponding_module_build("n-v-r") is None
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_find_the_module_build(self, ClientSession):
|
||||
expected_module_build = (
|
||||
db_session.query(ModuleBuild).filter(ModuleBuild.name == "platform").first()
|
||||
@@ -97,7 +97,7 @@ class TestDecisionUpdateHandler:
|
||||
)
|
||||
|
||||
@patch("module_build_service.messaging.publish")
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_transform_from_done_to_ready(self, ClientSession, publish):
|
||||
clean_database()
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ class TestPoller:
|
||||
assert len(start_build_component.mock_calls) == expected_build_calls
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_retrigger_new_repo_on_failure(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -173,7 +173,7 @@ class TestPoller:
|
||||
"module-testmodule-master-20170219191323-c40c156c-build")
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_trigger_new_repo_when_succeeded(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -244,7 +244,7 @@ class TestPoller:
|
||||
assert component.state is None
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_old_build_targets_are_not_associated_with_any_module_builds(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -266,7 +266,7 @@ class TestPoller:
|
||||
koji_session.deleteBuildTarget.assert_not_called()
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_dont_delete_base_module_build_target(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -291,7 +291,7 @@ class TestPoller:
|
||||
koji_session.deleteBuildTarget.assert_not_called()
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_dont_delete_build_target_for_unfinished_module_builds(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -318,7 +318,7 @@ class TestPoller:
|
||||
koji_session.deleteBuildTarget.assert_not_called()
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_only_delete_build_target_with_allowed_koji_tag_prefix(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -357,7 +357,7 @@ class TestPoller:
|
||||
koji_session.krb_login.assert_called_once()
|
||||
|
||||
@patch.dict("sys.modules", krbV=mock.MagicMock())
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_cant_delete_build_target_if_not_reach_delete_time(
|
||||
self, ClientSession, create_builder, global_consumer, dbg
|
||||
):
|
||||
@@ -618,7 +618,7 @@ class TestPoller:
|
||||
@pytest.mark.parametrize("tagged", (True, False))
|
||||
@pytest.mark.parametrize("tagged_in_final", (True, False))
|
||||
@pytest.mark.parametrize("btime", (True, False))
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_sync_koji_build_tags(
|
||||
self, ClientSession, create_builder, global_consumer, dbg, tagged, tagged_in_final, btime
|
||||
):
|
||||
|
||||
@@ -111,7 +111,7 @@ class TestGetModulemdsFromUrsineContent:
|
||||
def teardown_method(self, test_method):
|
||||
clean_database()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_return_empty_if_no_ursine_build_tag_is_found(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
@@ -127,7 +127,7 @@ class TestGetModulemdsFromUrsineContent:
|
||||
assert [] == modulemds
|
||||
|
||||
@patch.object(conf, "koji_tag_prefixes", new=["module"])
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_modulemds(self, ClientSession):
|
||||
koji_session = ClientSession.return_value
|
||||
|
||||
@@ -235,7 +235,7 @@ class TestRecordStreamCollisionModules:
|
||||
@patch.object(conf, "base_module_names", new=["platform", "project-platform"])
|
||||
@patch("module_build_service.utils.ursine.get_modulemds_from_ursine_content")
|
||||
@patch("module_build_service.resolver.GenericResolver.create")
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_add_collision_modules(
|
||||
self, ClientSession, resolver_create, get_modulemds_from_ursine_content
|
||||
):
|
||||
|
||||
@@ -344,7 +344,7 @@ class TestUtils:
|
||||
def teardown_method(self, test_method):
|
||||
clean_database()
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_arches(self, ClientSession):
|
||||
session = ClientSession.return_value
|
||||
session.getTag.return_value = {"arches": "ppc64le"}
|
||||
@@ -352,7 +352,7 @@ class TestUtils:
|
||||
r = module_build_service.utils.get_build_arches(mmd, conf)
|
||||
assert r == ["ppc64le"]
|
||||
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_get_build_arches_no_arch_set(self, ClientSession):
|
||||
"""
|
||||
When no architecture is set in Koji tag, fallback to conf.arches.
|
||||
@@ -1727,7 +1727,7 @@ class TestUtilsModuleReuse:
|
||||
"module_build_service.config.Config.allow_only_compatible_base_modules",
|
||||
new_callable=mock.PropertyMock,
|
||||
)
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
@patch(
|
||||
"module_build_service.config.Config.resolver",
|
||||
new_callable=mock.PropertyMock, return_value="koji"
|
||||
|
||||
@@ -450,7 +450,7 @@ class TestViews:
|
||||
assert item[key] == part
|
||||
|
||||
@pytest.mark.usefixtures("reuse_component_init_data")
|
||||
@patch("module_build_service.builder.KojiModuleBuilder.KojiClientSession")
|
||||
@patch("koji.ClientSession")
|
||||
def test_query_builds_with_binary_rpm(self, ClientSession):
|
||||
"""
|
||||
Test for querying MBS with the binary rpm filename. MBS should return all the modules,
|
||||
|
||||
Reference in New Issue
Block a user