-
Notifications
You must be signed in to change notification settings - Fork 84
feat: Raise meaningful exception when oauth callback times out #441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Adds WSGITimeout exception to flow.py - Raises WSGITimeout when run_local_server times out instead of crashing with AttributeError - Adds unit test to verify timeout behavior Co-authored-by: chalmerlowe <7291104+chalmerlowe@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Summary of ChangesHello @chalmerlowe, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request refines the error handling within the OAuth callback process by introducing a dedicated Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a WSGITimeout exception to provide a more meaningful error when the local server for the OAuth flow times out waiting for the callback. This is a good improvement over the previous behavior which resulted in an AttributeError. The changes include the new exception class, updated docstrings, and the logic to raise the exception on timeout. A new unit test has been added to cover this timeout scenario. The implementation is solid, and I have one suggestion to make the new test more robust.
| with pytest.raises(flow.WSGITimeout): | ||
| instance.run_local_server(timeout_seconds=1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test correctly verifies that a WSGITimeout is raised. To make it more robust, you could also assert that webbrowser.open() was called, as this happens before the server waits for the request and times out. This would ensure that part of the flow is also behaving as expected in the timeout scenario, consistent with other tests for run_local_server.
| with pytest.raises(flow.WSGITimeout): | |
| instance.run_local_server(timeout_seconds=1) | |
| with pytest.raises(flow.WSGITimeout): | |
| instance.run_local_server(timeout_seconds=1) | |
| webbrowser_mock.get.assert_called_with(None) | |
| webbrowser_mock.get.return_value.open.assert_called_once() |
This PR addresses the issue where a timeout in
run_local_servercaused anAttributeError. It introduces aWSGITimeoutexception that is raised when the server times out waiting for a callback. A regression test has been added totests/unit/test_flow.py.PR created automatically by Jules for task 14978887234858898738 started by @chalmerlowe