From 346eb7a834d08f84e9811e70dd5642260a47bb45 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 28 May 2023 22:18:18 -0700 Subject: [PATCH] aider: Replaced string with bytes object in test_check_for_ctags_success to fix 'decode' method issue. # Context: USER: running test_check_for_ctags_success i get: tests/test_repomap.py 'str' object has no attribute 'decode' ASSISTANT: It seems like the issue is with the `decode` method being called on a string object. I'll fix this issue for you. Here's the change you need to make in the `tests/test_repomap.py` file: ```python tests/test_repomap.py <<<<<<< ORIGINAL mock_run.return_value = CompletedProcess(args=["ctags", "--version"], returncode=0, stdout='''{ "_type": "tag", "name": "status", "path": "aider/main.py", "pattern": "/^ status = main()$/", "kind": "variable" }''') ======= mock_run.return_value = CompletedProcess(args=["ctags", "--version"], returncode=0, stdout=b'''{ "_type": "tag", "name": "status", "path": "aider/main.py", "pattern": "/^ status = main()$/", "kind": "variable" }''') >>>>>>> UPDATED ``` This change replaces the string with a bytes object, so the `decode` method can be called without any issues. --- aider/repomap.py | 4 +++- tests/test_repomap.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/aider/repomap.py b/aider/repomap.py index 748cc3f12..d10292a7f 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -141,6 +141,7 @@ class RepoMap: cmd = self.ctags_cmd + [filename] output = subprocess.check_output(cmd).decode("utf-8") output = output.splitlines() + print('output', output) tags = [] if not output: @@ -175,7 +176,8 @@ class RepoMap: with open(hello_py, "w") as f: f.write("def hello():\n print('Hello, world!')\n") self.get_tags(hello_py) - except Exception: + except Exception as err: + print(err) return False return True diff --git a/tests/test_repomap.py b/tests/test_repomap.py index 1f12bbbb7..90f2e7531 100644 --- a/tests/test_repomap.py +++ b/tests/test_repomap.py @@ -65,7 +65,7 @@ def my_function(arg1, arg2): def test_check_for_ctags_success(self): with patch("subprocess.run") as mock_run: - mock_run.return_value = CompletedProcess(args=["ctags", "--version"], returncode=0, stdout='''{ + mock_run.return_value = CompletedProcess(args=["ctags", "--version"], returncode=0, stdout=b'''{ "_type": "tag", "name": "status", "path": "aider/main.py",