Merge branch 'main' into openai-upgrade

This commit is contained in:
Paul Gauthier 2023-12-06 09:26:05 -08:00
commit 922a56b194
2 changed files with 41 additions and 0 deletions

View file

@ -377,6 +377,12 @@ def main(argv=None, input=None, output=None, force_git_root=None):
metavar="COMMAND",
help="Specify a single message to send GPT, process reply then exit (disables chat mode)",
)
other_group.add_argument(
"--message-file",
"-f",
metavar="MESSAGE_FILE",
help="Specify a file containing the message to send GPT, process reply, then exit (disables chat mode)",
)
other_group.add_argument(
"--encoding",
default="utf-8",
@ -568,8 +574,20 @@ def main(argv=None, input=None, output=None, force_git_root=None):
io.tool_error(f"Git working dir: {git_root}")
if args.message:
io.add_to_input_history(args.message)
io.tool_output()
coder.run(with_message=args.message)
elif args.message_file:
try:
message_from_file = io.read_text(args.message_file)
io.tool_output()
coder.run(with_message=message_from_file)
except FileNotFoundError:
io.tool_error(f"Message file not found: {args.message_file}")
return 1
except IOError as e:
io.tool_error(f"Error reading message file: {e}")
return 1
else:
coder.run()

View file

@ -182,6 +182,19 @@ class TestMain(TestCase):
_, kwargs = MockCoder.call_args
assert kwargs["dirty_commits"] is True
def test_message_file_flag(self):
message_file_content = "This is a test message from a file."
message_file_path = tempfile.mktemp()
with open(message_file_path, 'w', encoding='utf-8') as message_file:
message_file.write(message_file_content)
with patch("aider.main.Coder.create") as MockCoder:
MockCoder.return_value.run = MagicMock()
main(["--yes", "--message-file", message_file_path], input=DummyInput(), output=DummyOutput())
MockCoder.return_value.run.assert_called_once_with(with_message=message_file_content)
os.remove(message_file_path)
def test_encodings_arg(self):
fname = "foo.py"
@ -196,3 +209,13 @@ class TestMain(TestCase):
MockSend.side_effect = side_effect
main(["--yes", fname, "--encoding", "iso-8859-15"])
@patch("aider.main.InputOutput")
@patch("openai.ChatCompletion.create")
def test_main_message_adds_to_input_history(self, mock_chat_completion, MockInputOutput):
test_message = "test message"
mock_io_instance = MockInputOutput.return_value
mock_chat_completion.return_value = MagicMock(choices=[{"text": "mocked response"}])
main(["--message", test_message], input=DummyInput(), output=DummyOutput())
mock_io_instance.add_to_input_history.assert_called_once_with(test_message)