aider/tests/test_repomap.py
Paul Gauthier 82804e2a6c aider: Updated test to check for correct format of file in result.
# Context:
USER: I ran this command:

 pytest tests/test_repomap.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 3 items

tests/test_repomap.py ..F                                                [100%]

=================================== FAILURES ===================================
_________________ TestRepoMap.test_get_tags_map_without_ctags __________________

self = <tests.test_repomap.TestRepoMap testMethod=test_get_tags_map_without_ctags>

    def test_get_tags_map_without_ctags(self):
        # Create a temporary directory with a sample Python file containing identifiers
        test_files = [
            "test_file_without_ctags.py",
            "test_file1.txt",
            "test_file2.md",
            "test_file3.json",
            "test_file4.html",
            "test_file5.css",
            "test_file6.js",
        ]

        with tempfile.TemporaryDirectory() as temp_dir:
            for file in test_files:
                with open(os.path.join(temp_dir, file), "w") as f:
                    f.write("")

            repo_map = RepoMap(use_ctags=False, root=temp_dir)
            other_files = [os.path.join(temp_dir, file) for file in test_files]
            result = repo_map.get_tags_map(other_files)

            # Check if the result contains each specific file in the expected tags map without ctags
            for file in test_files:
>               self.assertIn(f"{os.path.splitext(file)[0]}:", result)
E               AssertionError: 'test_file_without_ctags:' not found in 'test_file1.txt:\ntest_file4.html:\ntest_file5.css:\ntest_file6.js:\ntest_file_without_ctags.py:\n'

tests/test_repomap.py:80: AssertionError
=========================== short test summary info ============================
FAILED tests/test_repomap.py::TestRepoMap::test_get_tags_map_without_ctags - ...
========================= 1 failed, 2 passed in 0.39s ==========================

ASSISTANT: It seems that the test `test_get_tags_map_without_ctags` is failing because the expected string 'test_file_without_ctags:' is not found in the result. The result contains 'test_file_without_ctags.py:', which is the correct format. I will update the test to fix this issue.

```python
tests/test_repomap.py
<<<<<<< ORIGINAL
            for file in test_files:
                self.assertIn(f"{os.path.splitext(file)[0]}:", result)
=======
            for file in test_files:
                self.assertIn(f"{os.path.splitext(file)[0]}.{os.path.splitext(file)[1][1:]}:", result)
>>>>>>> UPDATED
```

This update changes the test to check for the correct format of the file in the result. Now you can run the test again with the `pytest tests/test_repomap.py` command.
2023-05-24 19:06:39 -07:00

83 lines
3 KiB
Python

import os
import tempfile
import unittest
from aider.repomap import RepoMap
class TestRepoMap(unittest.TestCase):
def test_get_tags_map(self):
# Create a temporary directory with sample files for testing
test_files = [
"test_file1.py",
"test_file2.py",
"test_file3.md",
"test_file4.json",
]
with tempfile.TemporaryDirectory() as temp_dir:
for file in test_files:
with open(os.path.join(temp_dir, file), "w") as f:
f.write("")
repo_map = RepoMap(root=temp_dir)
other_files = [os.path.join(temp_dir, file) for file in test_files]
result = repo_map.get_tags_map(other_files)
# Check if the result contains the expected tags map
self.assertIn("test_file1.py:", result)
self.assertIn("test_file2.py:", result)
self.assertNotIn("test_file3.md:", result)
self.assertNotIn("test_file4.json:", result)
def test_get_tags_map_with_identifiers(self):
# Create a temporary directory with a sample Python file containing identifiers
test_file = "test_file_with_identifiers.py"
file_content = """\
class MyClass:
def my_method(self, arg1, arg2):
return arg1 + arg2
def my_function(arg1, arg2):
return arg1 * arg2
"""
with tempfile.TemporaryDirectory() as temp_dir:
with open(os.path.join(temp_dir, test_file), "w") as f:
f.write(file_content)
repo_map = RepoMap(root=temp_dir)
other_files = [os.path.join(temp_dir, test_file)]
result = repo_map.get_tags_map(other_files)
# Check if the result contains the expected tags map with identifiers
self.assertIn("test_file_with_identifiers.py:", result)
self.assertIn("MyClass", result)
self.assertIn("my_method", result)
self.assertIn("my_function", result)
def test_get_tags_map_without_ctags(self):
# Create a temporary directory with a sample Python file containing identifiers
test_files = [
"test_file_without_ctags.py",
"test_file1.txt",
"test_file2.md",
"test_file3.json",
"test_file4.html",
"test_file5.css",
"test_file6.js",
]
with tempfile.TemporaryDirectory() as temp_dir:
for file in test_files:
with open(os.path.join(temp_dir, file), "w") as f:
f.write("")
repo_map = RepoMap(use_ctags=False, root=temp_dir)
other_files = [os.path.join(temp_dir, file) for file in test_files]
result = repo_map.get_tags_map(other_files)
# Check if the result contains each specific file in the expected tags map without ctags
for file in test_files:
self.assertIn(f"{os.path.splitext(file)[0]}.{os.path.splitext(file)[1][1:]}:", result)
if __name__ == "__main__":
unittest.main()