def test_custom_cachelen(self): cachelen = 13 params = stub_session_parameters.copy() params['cachelen'] = cachelen s = webuntis.Session(**params) self.assertEqual(s.cache._maxlen, cachelen) self.assertTrue('cachelen' not in s.config)
def test_login_response_with_sessionid_and_without(self): session_parameters = stub_session_parameters.copy() del session_parameters['jsessionid'] s = webuntis.Session(**session_parameters) def assert_call(request_mock): request_mock.assert_called_with( 'authenticate', { 'user': session_parameters['username'], 'password': session_parameters['password'], 'client': session_parameters['useragent'] }, use_login_repeat=False ) with mock.patch( 'webuntis.Session._request', side_effect=[{'sessionId': '123456'}, {}] ) as request_mock: s.login() self.assertEqual(s.config['jsessionid'], '123456') self.assertEqual(request_mock.call_count, 1) assert_call(request_mock) del s.config['jsessionid'] self.assertRaises(webuntis.errors.AuthError, s.login) self.assertTrue('jsessionid' not in s.config) self.assertEqual(request_mock.call_count, 2) assert_call(request_mock)
def test_login_no_creds(self): session_parameters = stub_session_parameters.copy() del session_parameters['jsessionid'] del session_parameters['username'] del session_parameters['password'] s = webuntis.Session(**session_parameters) with mock.patch( 'webuntis.Session._request', side_effect=Exception('Testing if login method raises AuthError ' 'due to invalid creds...') ): self.assertRaises(webuntis.errors.AuthError, s.login)
def test_logout_not_logged_in(self): session_parameters = stub_session_parameters.copy() del session_parameters['jsessionid'] s = webuntis.Session(**session_parameters) self.assertRaises(webuntis.errors.NotLoggedInError, s.logout) s.logout(suppress_errors=True) # should not raise with mock.patch( 'webuntis.Session._request' ): self.assertRaises(webuntis.errors.NotLoggedInError, s.logout) s.logout(suppress_errors=True) # should not raise