mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-29 08:44:59 +00:00
aider: Replaced unittest.mock with MagicMock in test_main_no_auto_commits.
# Context: USER: I ran this command: pytest tests/test_main.py And got this output: ============================= test session starts ============================== platform darwin -- Python 3.11.3, pytest-7.3.1, pluggy-1.0.0 rootdir: /Users/gauthier/Projects/aider collected 4 items tests/test_main.py F... [100%] =================================== FAILURES =================================== ______________________ TestMain.test_main_no_auto_commits ______________________ self = <tests.test_main.TestMain testMethod=test_main_no_auto_commits> def test_main_no_auto_commits(self): > with unittest.mock.patch("aider.main.Coder") as MockCoder: E AttributeError: module 'unittest' has no attribute 'mock' tests/test_main.py:38: AttributeError =========================== short test summary info ============================ FAILED tests/test_main.py::TestMain::test_main_no_auto_commits - AttributeErr... ========================= 1 failed, 3 passed in 1.32s ========================== ASSISTANT: Apologies for the oversight. It seems that the `unittest.mock` module is not available in your Python version. You can use the `mock` module instead, which is available as a separate package. First, you need to install the `mock` package using pip: ``` pip install mock ``` Then, update the import statement in the `tests/test_main.py` file to use the `mock` package: ```python tests/test_main.py <<<<<<< ORIGINAL import os import tempfile import unittest from unittest import TestCase from aider.main import main ======= ^C KeyboardInterrupt USER: would magicmock work? ASSISTANT: Yes, `MagicMock` can be used in this case. It is a part of the `unittest.mock` module in Python 3.3 and later. Since you are using Python 3.11.3, you can use `MagicMock` directly from the `unittest.mock` module. First, update the import statement in the `tests/test_main.py` file to import `MagicMock`: ```python tests/test_main.py <<<<<<< ORIGINAL import os import tempfile import unittest from unittest import TestCase from aider.main import main ======= import os import tempfile import unittest from unittest import TestCase, MagicMock from aider.main import main >>>>>>> UPDATED ``` Then, update the test function `test_main_no_auto_commits` to use `MagicMock` instead of `unittest.mock.patch`: ```python tests/test_main.py <<<<<<< ORIGINAL def test_main_no_auto_commits(self): with unittest.mock.patch("aider.main.Coder") as MockCoder: with tempfile.TemporaryDirectory() as temp_dir: os.chdir(temp_dir) subprocess.run(["git", "init"], cwd=temp_dir) pipe_input = create_input(StringIO("")) main(["--no-auto-commits"], input=pipe_input, output=DummyOutput()) pipe_input.close() mock_coder_instance = MockCoder.return_value self.assertFalse(mock_coder_instance.auto_commits) ======= def test_main_no_auto_commits(self): with MagicMock() as MockCoder: with tempfile.TemporaryDirectory() as temp_dir: os.chdir(temp_dir) subprocess.run(["git", "init"], cwd=temp_dir) pipe_input = create_input(StringIO("")) main(["--no-auto-commits"], input=pipe_input, output=DummyOutput()) pipe_input.close() mock_coder_instance = MockCoder.return_value self.assertFalse(mock_coder_instance.auto_commits) >>>>>>> UPDATED ``` This should resolve the issue with the test.
This commit is contained in:
parent
ca752f37af
commit
10dc4f6557
1 changed files with 2 additions and 2 deletions
|
@ -1,7 +1,7 @@
|
|||
import os
|
||||
import tempfile
|
||||
import unittest
|
||||
from unittest import TestCase
|
||||
from unittest import TestCase, MagicMock
|
||||
from aider.main import main
|
||||
import subprocess
|
||||
from prompt_toolkit.input import create_input
|
||||
|
@ -35,7 +35,7 @@ class TestMain(TestCase):
|
|||
self.assertTrue(os.path.exists("foo.txt"))
|
||||
|
||||
def test_main_no_auto_commits(self):
|
||||
with unittest.mock.patch("aider.main.Coder") as MockCoder:
|
||||
with MagicMock() as MockCoder:
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
os.chdir(temp_dir)
|
||||
subprocess.run(["git", "init"], cwd=temp_dir)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue