From 183f831a7e6aa3f2e11513d850185b11d0d98756 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 5 Mar 2025 15:15:09 -0800 Subject: [PATCH] test: Add test for git config include to verify aider respects user settings --- tests/basic/test_main.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/basic/test_main.py b/tests/basic/test_main.py index 3374b1323..098a4c61c 100644 --- a/tests/basic/test_main.py +++ b/tests/basic/test_main.py @@ -740,6 +740,35 @@ class TestMain(TestCase): with GitTemporaryDirectory(): result = main(["--api-key", "INVALID_FORMAT", "--exit", "--yes"]) self.assertEqual(result, 1) + + def test_git_config_include(self): + # Test that aider respects git config includes for user.name and user.email + with GitTemporaryDirectory() as git_dir: + git_dir = Path(git_dir) + + # Create an includable config file with user settings + include_config = git_dir / "included.gitconfig" + include_config.write_text( + "[user]\n" + " name = Included User\n" + " email = included@example.com\n" + ) + + # Set up main git config to include the other file + repo = git.Repo(git_dir) + repo.git.config("--local", "include.path", str(include_config)) + + # Verify the config is set up correctly + self.assertEqual(repo.git.config("user.name"), "Included User") + self.assertEqual(repo.git.config("user.email"), "included@example.com") + + # Run aider and verify it doesn't change the git config + main(["--yes", "--exit"], input=DummyInput(), output=DummyOutput()) + + # Check that the user settings are still the same + repo = git.Repo(git_dir) # Re-open repo to ensure we get fresh config + self.assertEqual(repo.git.config("user.name"), "Included User") + self.assertEqual(repo.git.config("user.email"), "included@example.com") def test_invalid_edit_format(self): with GitTemporaryDirectory():