add tests

This commit is contained in:
Benjamin Dauvergne 2016-02-10 09:46:24 +01:00
parent 2c0c240469
commit fed6c56c46
1 changed files with 31 additions and 4 deletions

View File

@ -3,8 +3,35 @@ import pytest
import kerberos
def test_login_no_header(client, settings):
print client.get('/login/')
@pytest.fixture
def kerberos_mock(request, mocker):
a = {}
d = (
'kerberos.authGSSServerInit',
'kerberos.authGSSServerStep',
'kerberos.authGSSServerResponse',
'kerberos.authGSSServerUserName',
'kerberos.authGSSServerClean'
)
for name in d:
if hasattr(request, 'param') and name in request.param:
continue
a[name] = mocker.patch(name)
return a
def test_login_no_header(client, settings, kerberos_mock):
client.get('/login/')
for mock in kerberos_mock.values():
assert mock.call_count == 0
@pytest.mark.parametrize('kerberos_mock', ['kerberos.authGSSServerInit'], indirect=True)
def test_login_missing_keytab(client, settings, kerberos_mock, caplog):
resp = client.get('/login/', HTTP_AUTHORIZATION='Negotiate coin')
for key, mock in kerberos_mock.iteritems():
assert mock.call_count == 0
assert 'keytab problem' in resp.content
assert 'keytab problem' in caplog.text()
def test_login_negotiate_wrong(client, settings):
print client.get('/login/', HTTP_AUTHORIZATION='Negotiate coin')