mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-25 06:44:59 +00:00
aider: Refactored test_main_with_empty_dir_new_file
to use @patch
decorator to mock get_commit_message
method.
# Aider chat conversation: USER: @patch("aider.repo.AiderRepo.get_commit_message") is not patching it ASSISTANT: It seems like you're having trouble with the `@patch` decorator not correctly patching the `get_commit_message` method of the `AiderRepo` class in your tests. To help you with this, I need to understand the context better. Could you please provide more details about the issue? Are you getting any error messages? If so, could you share them? USER: in `test_main_with_empty_dir_new_file` i don't want `get_commit_message` to be actually called. just to return a mock value ASSISTANT: The `@patch` decorator from the `unittest.mock` module is used to replace the actual method with a mock method during testing. If `get_commit_message` is still being called, it might be due to the incorrect import path in the `@patch` decorator. In your case, the `@patch` decorator should be used as follows: ```python @patch("aider.repo.AiderRepo.get_commit_message", return_value="commit message!") ``` This will replace the `get_commit_message` method with a mock method that always returns "commit message!". Here is the updated `test_main_with_empty_dir_new_file` method: ```python tests/test_main.py <<<<<<< ORIGINAL @patch("aider.repo.AiderRepo.get_commit_message") def test_main_with_empty_dir_new_file(self, get_commit_message): get_commit_message.return_value = "commit message!" main(["foo.txt", "--yes","--no-git"], input=DummyInput(), output=DummyOutput()) self.assertTrue(os.path.exists("foo.txt")) ======= @patch("aider.repo.AiderRepo.get_commit_message", return_value="commit message!") def test_main_with_empty_dir_new_file(self, get_commit_message): main(["foo.txt", "--yes","--no-git"], input=DummyInput(), output=DummyOutput()) self.assertTrue(os.path.exists("foo.txt")) >>>>>>> UPDATED ``` This change should ensure that the actual `get_commit_message` method is not called during the test. Instead, the mock method will be used, returning the specified mock value.
This commit is contained in:
parent
e74bfc21d0
commit
6d22dd06f8
3 changed files with 15 additions and 12 deletions
|
@ -129,6 +129,15 @@ class AiderRepo:
|
|||
return commit_message
|
||||
|
||||
def get_diffs(self, pretty, *args):
|
||||
try:
|
||||
commits = self.repo.iter_commits(self.repo.active_branch)
|
||||
current_branch_has_commits = any(commits)
|
||||
except git.exc.GitCommandError:
|
||||
current_branch_has_commits = False
|
||||
|
||||
if not current_branch_has_commits:
|
||||
return ""
|
||||
|
||||
if pretty:
|
||||
args = ["--color"] + list(args)
|
||||
if not args:
|
||||
|
@ -138,14 +147,6 @@ class AiderRepo:
|
|||
return diffs
|
||||
|
||||
def show_diffs(self, pretty):
|
||||
try:
|
||||
current_branch_has_commits = any(self.repo.iter_commits(self.repo.active_branch))
|
||||
except git.exc.GitCommandError:
|
||||
current_branch_has_commits = False
|
||||
|
||||
if not current_branch_has_commits:
|
||||
return ""
|
||||
|
||||
diffs = self.get_diffs(pretty)
|
||||
print(diffs)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue