-
Notifications
You must be signed in to change notification settings - Fork 2.8k
refactor(mcp):used logger to log instead of print and updated unittes… #4324
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?
refactor(mcp):used logger to log instead of print and updated unittes… #4324
Conversation
Summary of ChangesHello @DineshThumma9, 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 refactors the error handling mechanism within the MCP session manager by transitioning from basic print statements to the more robust and configurable Python logging module. This change improves the maintainability and observability of warning messages, especially during session cleanup. Corresponding unit tests have been updated to correctly verify the new logging behavior. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. 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 correctly refactors the code to use logger.warning instead of print for logging errors during MCP session cleanup, which is a good improvement for standardized logging. The unit tests have also been updated to reflect this change. I've provided a couple of suggestions to further improve the log message clarity and make the corresponding test more robust. Overall, this is a solid change.
| logger.warning( | ||
| f'Warning: Error during MCP session cleanup for:{session_key}', | ||
| exc_info=True, | ||
| ) |
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.
The log message can be improved for clarity and to follow standard logging practices. The logger.warning call already indicates the severity level, so including 'Warning:' in the message string is redundant. Also, a missing space after the colon in the f-string affects readability.
| logger.warning( | |
| f'Warning: Error during MCP session cleanup for:{session_key}', | |
| exc_info=True, | |
| ) | |
| logger.warning( | |
| f'Error during MCP session cleanup for {session_key}', | |
| exc_info=True, | |
| ) |
| mock_logger.warning.assert_called() | ||
| warning_call = str(mock_logger.warning.call_args) | ||
| assert "Warning: Error during MCP session cleanup" in warning_call |
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.
The test assertion for the log message can be made more robust. Instead of converting call_args to a string, it's better to inspect the arguments passed to mock_logger.warning directly. This makes the test less fragile and more explicit about what's being tested. Using assert_called_once() is also more precise than assert_called() when you expect a single call. This suggestion also aligns with the proposed change to the log message format.
| mock_logger.warning.assert_called() | |
| warning_call = str(mock_logger.warning.call_args) | |
| assert "Warning: Error during MCP session cleanup" in warning_call | |
| mock_logger.warning.assert_called_once() | |
| args, kwargs = mock_logger.warning.call_args | |
| assert 'Error during MCP session cleanup for session1' in args[0] | |
| assert kwargs.get('exc_info') |
|
/gemini review |
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 correctly refactors error logging from using print to the standard logging module. The change to use logger.warning with exc_info=True is a significant improvement, as it provides more detailed exception information in the logs. The corresponding unit tests have been updated effectively to mock the logger and verify the new behavior. I've suggested one minor improvement to make the test assertion more specific.
| # Error should be logged via logger.warning | ||
| mock_logger.warning.assert_called_once() | ||
| args, kwargs = mock_logger.warning.call_args | ||
| assert "Error during MCP session cleanup for session1" in args[0] |
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.
For a more precise test, it's better to assert the exact log message instead of using in. This ensures that the log message is exactly as expected and prevents accidental changes from going unnoticed.
| assert "Error during MCP session cleanup for session1" in args[0] | |
| assert "Error during MCP session cleanup for session1" == args[0] |
Please ensure you have read the contribution guide before creating a pull request.
Link to Issue or Description of Change
1. Link to an existing issue (if applicable):
printin mcp_session_manager.py #43202. Or, if no issue exists, describe the change:
Problem:
Was using print instead of logger for warning message
*Solution:
Refactored
Testing Plan
Unit Tests:
Please include a summary of passed
pytestresults.Manual End-to-End (E2E) Tests:
Checklist
Additional context
Add any other context or screenshots about the feature request here.