From b5c1ae69a9427be78e0255de8fee86380523d48a Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Wed, 21 Aug 2024 21:38:03 -0700 Subject: [PATCH] feat: Add test for `explicit_yes_required` in `confirm_ask` method --- tests/basic/test_io.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/basic/test_io.py b/tests/basic/test_io.py index f639563f3..ba523012c 100644 --- a/tests/basic/test_io.py +++ b/tests/basic/test_io.py @@ -60,6 +60,38 @@ class TestInputOutput(unittest.TestCase): result = io.get_input(root, rel_fnames, addable_rel_fnames, commands) self.assertEqual(result, "test input") + @patch('aider.io.prompt') + def test_confirm_ask_explicit_yes_required(self, mock_prompt): + io = InputOutput(pretty=False) + + # Test case 1: explicit_yes_required=True, self.yes=True + io.yes = True + result = io.confirm_ask("Are you sure?", explicit_yes_required=True) + self.assertFalse(result) + mock_prompt.assert_not_called() + + # Test case 2: explicit_yes_required=True, self.yes=False + io.yes = False + result = io.confirm_ask("Are you sure?", explicit_yes_required=True) + self.assertFalse(result) + mock_prompt.assert_not_called() + + # Test case 3: explicit_yes_required=True, user input required + io.yes = None + mock_prompt.return_value = 'y' + result = io.confirm_ask("Are you sure?", explicit_yes_required=True) + self.assertTrue(result) + mock_prompt.assert_called_once() + + # Reset mock_prompt + mock_prompt.reset_mock() + + # Test case 4: explicit_yes_required=False, self.yes=True + io.yes = True + result = io.confirm_ask("Are you sure?", explicit_yes_required=False) + self.assertTrue(result) + mock_prompt.assert_not_called() + if __name__ == "__main__": unittest.main()