-
Notifications
You must be signed in to change notification settings - Fork 261
tests: generate tmpdir store for ollama pull testcase #1891
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
tests: generate tmpdir store for ollama pull testcase #1891
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThe PR updates the ollama pull test to generate and use a temporary store directory via pytest fixture, ensuring write-permission and automatic cleanup. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
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.
Summary of Changes
Hello @booxter, 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 enhances the stability and reliability of the Ollama pull test by transitioning from a fixed, hardcoded temporary directory to a dynamically created one. This change specifically addresses PermissionError
issues encountered in CI environments due to potential permission conflicts or parallel test runs, ensuring that the test environment is clean and isolated for each execution.
Highlights
- Test Environment Stability: Replaced a hardcoded
/tmp
path in the Ollama pull test with a dynamically generated temporary directory, preventingPermissionError
issues and ensuring test isolation. - Resource Management: Ensured automatic cleanup of test-generated directories upon test completion by utilizing Python's
tempfile.TemporaryDirectory()
.
Using Gemini Code Assist
The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
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 .gemini/
folder in the base of the repository. Detailed instructions can be found here.
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
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
9a13e9e
to
b8911a8
Compare
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 resolves a test flakiness issue by replacing a hardcoded temporary directory with a dynamically generated one using tempfile.TemporaryDirectory
. This change ensures that each test run has a unique, writable directory that is automatically cleaned up, preventing potential permission errors and side effects between tests. The implementation is correct and follows best practices for managing temporary resources in pytest fixtures. The changes are a solid improvement to the test suite's reliability.
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.
Two reasons to do so: 1. The directory is cleaned up on test completed; 2. The hardcoded directory may not be available for write to the current process (because some other process is running the test suite in parallel, or because someone chmod -rwx the directory for some reason). In which case the test case fails with: PermissionError: [Errno 13] Permission denied: '/tmp/ramalama/store' This failure was triggered in nixpkgs CI: https://hydra.nixos.org/build/305125672 Signed-off-by: Ihar Hrachyshka <[email protected]>
b8911a8
to
dd527a3
Compare
/packit rebuild-failed |
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.
LGTM
Two reasons to do so:
The directory is cleaned up on test completed;
The hardcoded directory may not be available for write to the current
process (because some other process is running the test suite in
parallel, or because someone chmod -rwx the directory for some
reason).
In which case the test case fails with:
PermissionError: [Errno 13] Permission denied: '/tmp/ramalama/store'
This failure was triggered in nixpkgs CI:
https://hydra.nixos.org/build/305125672
Summary by Sourcery
Tests: