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
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