Exemple #1
0
 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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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