Beispiel #1
0
    def test_login_fatal_error(self, inner_login_m, scc_m, fssauu_m, caplog, has_lr):
        caplog.set_level(10)
        inner_login_m.side_effect = [LoginError("message")] * self.login_retries + [
            None
        ]

        conn = Connection()
        if has_lr:  # For historical reasons.
            conn._login_response = mock.MagicMock()
        with pytest.raises(LoginError, match="unknown error"):
            conn.login()

        assert inner_login_m.call_count == self.login_retries
        scc_m.assert_called_once_with(conn, mock.ANY, mock.ANY)
        fssauu_m.assert_not_called()

        expected = []
        for i in range(self.login_retries):
            retries_left = self.login_retries - i
            expected.append((10, "Logging in (%d retries left)" % (retries_left)))
            expected.append((30, "Trying to log again due to LoginError('message')"))

        expected = [(self.logger_name,) + x for x in expected]

        assert caplog.record_tuples == expected
Beispiel #2
0
    def test_find_sesskey_and_user_url(self, get_test_data):
        login_response = mock.MagicMock()
        login_response.text = get_test_data("logged-in.html.example")
        expected_url = (
            "https://campusvirtual.uva.es/user/profile.php?id=6737&showallcourses=1"
        )

        connection = Connection()
        connection._login_response = login_response
        connection.find_sesskey_and_user_url()
        assert connection.sesskey == "1Yjk995Su9"
        assert connection.user_url == expected_url