diff --git a/tests/test_lib/test_gssapi.py b/tests/test_lib/test_gssapi.py index edd27362..d121a41a 100644 --- a/tests/test_lib/test_gssapi.py +++ b/tests/test_lib/test_gssapi.py @@ -1,13 +1,14 @@ from __future__ import absolute_import -import mock + import os import unittest +import mock + import koji class TestGSSAPI(unittest.TestCase): - def setUp(self): self.session = koji.ClientSession('https://koji.example.com/kojihub', {}) self.session._callMethod = mock.MagicMock(name='_callMethod') @@ -26,33 +27,55 @@ class TestGSSAPI(unittest.TestCase): old_environ = dict(**os.environ) self.session.gssapi_login() self.session._callMethod.assert_called_once_with('sslLogin', [None], - retry=False) + retry=False) self.assertEqual(old_environ, dict(**os.environ)) - @mock.patch('requests_kerberos.__version__', new='0.9.0') @mock.patch('requests_kerberos.HTTPKerberosAuth') def test_gssapi_login_keytab(self, HTTPKerberosAuth_mock): principal = 'user@EXAMPLE.COM' keytab = '/path/to/keytab' ccache = '/path/to/cache' old_environ = dict(**os.environ) - self.session.gssapi_login(principal, keytab, ccache) - self.session._callMethod.assert_called_once_with('sslLogin', [None], - retry=False) - self.assertEqual(old_environ, dict(**os.environ)) + current_version = koji.requests_kerberos.__version__ + accepted_versions = ['0.12.0.beta1', + '0.12.0dev', + '0.12.0a1', + '0.11.0', + '0.10.0', + '0.9.0'] + for accepted_version in accepted_versions: + koji.requests_kerberos.__version__ = accepted_version + rv = self.session.gssapi_login(principal, keytab, ccache) + self.session._callMethod.assert_called_once_with('sslLogin', [None], + retry=False) + self.assertEqual(old_environ, dict(**os.environ)) + self.assertTrue(rv) + self.session._callMethod.reset_mock() + koji.requests_kerberos.__version__ = current_version - @mock.patch('requests_kerberos.__version__', new='0.7.0') def test_gssapi_login_keytab_unsupported_requests_kerberos_version(self): principal = 'user@EXAMPLE.COM' keytab = '/path/to/keytab' ccache = '/path/to/cache' old_environ = dict(**os.environ) - with self.assertRaises(koji.PythonImportError) as cm: - self.session.gssapi_login(principal, keytab, ccache) - self.assertEqual(cm.exception.args[0], - 'version of python-requests-kerberos(0.7.0) should >= 0.9.0') - self.session._callMethod.assert_not_called() - self.assertEqual(old_environ, dict(**os.environ)) + current_version = koji.requests_kerberos.__version__ + old_versions = ['0.8.0', + '0.7.0', + '0.6.1', + '0.6', + '0.5', + '0.3', + '0.2', + '0.1'] + for old_version in old_versions: + koji.requests_kerberos.__version__ = old_version + with self.assertRaises(koji.PythonImportError) as cm: + self.session.gssapi_login(principal, keytab, ccache) + self.assertEqual(cm.exception.args[0], + 'version of python-requests-kerberos(%s) should >= 0.9.0' % old_version) + self.session._callMethod.assert_not_called() + self.assertEqual(old_environ, dict(**os.environ)) + koji.requests_kerberos.__version__ = current_version def test_gssapi_login_error(self): old_environ = dict(**os.environ) @@ -60,7 +83,7 @@ class TestGSSAPI(unittest.TestCase): with self.assertRaises(koji.AuthError): self.session.gssapi_login() self.session._callMethod.assert_called_once_with('sslLogin', [None], - retry=False) + retry=False) self.assertEqual(old_environ, dict(**os.environ)) def test_gssapi_login_http(self):