def test_krb_login(self, access, exists, keytab, principal, krb_login_kwargs):
        session = Mock()
        session.getAPIVersion.return_value = 1

        with patch.object(tagging_service.conf, 'keytab', new=keytab):
            with patch.object(tagging_service.conf, 'principal', new=principal):
                tagging_service.login_koji(session, koji_config_krb_auth)

        session.krb_login.assert_called_once_with(**krb_login_kwargs)
    def test_raise_error_if_ssl_cert_is_not_readable(self):
        session = Mock()
        # Ensure koji_cli.lib.activate_session completes API version check.
        session.getAPIVersion.return_value = 1

        with pytest.raises(
                IOError, match='SSL certificate path/to/cert is not readable.'):
            tagging_service.login_koji(session, {
                'authtype': 'kerberos',
                'serverca': '',
                'debug': False,
            })
    def test_ssl_login(self, access, exists):
        session = Mock()
        # Ensure koji_cli.lib.activate_session completes API version check.
        session.getAPIVersion.return_value = 1

        tagging_service.login_koji(session, {
            'authtype': 'kerberos',
            'serverca': '',
            'debug': False,
        })

        session.ssl_login.assert_called_once_with(
            'path/to/cert', None, '', proxyuser=None)