def test_get_request_user(dummy_user, mocker, monkeypatch): _lookup_request_user = mocker.patch('indico.web.util._lookup_request_user', return_value=(dummy_user, 'whatever')) monkeypatch.setattr('indico.web.util._check_request_user', lambda user, source: (user, source)) assert get_request_user() == (dummy_user, 'whatever') _lookup_request_user.assert_called_once() assert get_request_user() == (dummy_user, 'whatever') assert _lookup_request_user.call_count == 2
def test_get_request_user_lookup_failure(mocker, monkeypatch): _lookup_request_user = mocker.patch('indico.web.util._lookup_request_user', side_effect=Exception('kaboom')) monkeypatch.setattr('indico.web.util._check_request_user', lambda user, source: (user, source)) with pytest.raises(Exception) as exc_info: get_request_user() assert str(exc_info.value) == 'kaboom' _lookup_request_user.assert_called_once() # after a failure, we always return None assert get_request_user() == (None, None) # the lookup should not be done again once a failure is cached _lookup_request_user.assert_called_once()
def test_get_request_user_check_failure(dummy_user, mocker): _lookup_request_user = mocker.patch('indico.web.util._lookup_request_user', return_value=(dummy_user, 'whatever')) _check_request_user = mocker.patch('indico.web.util._check_request_user', side_effect=Exception('kaboom')) with pytest.raises(Exception) as exc_info: get_request_user() assert str(exc_info.value) == 'kaboom' _lookup_request_user.assert_called_once() _check_request_user.assert_called_once() # after a failure, we always return None assert get_request_user() == (None, None) # the lookup/check should not be done again once a failure is cached _lookup_request_user.assert_called_once() _check_request_user.assert_called_once()