question_cmd: fixed '--create' option
This commit is contained in:
@@ -10,6 +10,10 @@ from ..ai_factory import create_ai
|
||||
from ..ai import AI, AIResponse
|
||||
|
||||
|
||||
class QuestionCmdError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def add_file_as_text(question_parts: list[str], file: str) -> None:
|
||||
"""
|
||||
Add the given file as plain text to the question part list.
|
||||
@@ -57,7 +61,12 @@ def create_message(chat: ChatDB, args: argparse.Namespace) -> Message:
|
||||
to the cache directory.
|
||||
"""
|
||||
question_parts = []
|
||||
question_list = args.ask if args.ask is not None else []
|
||||
if args.create is not None:
|
||||
question_list = args.create
|
||||
elif args.ask is not None:
|
||||
question_list = args.ask
|
||||
else:
|
||||
raise QuestionCmdError("No question found")
|
||||
text_files = args.source_text if args.source_text is not None else []
|
||||
code_files = args.source_code if args.source_code is not None else []
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ class TestMessageCreate(TestWithFakeAI):
|
||||
self.args.AI = None
|
||||
self.args.model = None
|
||||
self.args.output_tags = None
|
||||
self.args.ask = None
|
||||
self.args.create = None
|
||||
# File 1 : no source code block, only text
|
||||
self.source_file1 = tempfile.NamedTemporaryFile(delete=False)
|
||||
self.source_file1_content = """This is just text.
|
||||
@@ -201,6 +203,21 @@ It is embedded code
|
||||
"""))
|
||||
|
||||
|
||||
class TestCreateOption(TestMessageCreate):
|
||||
|
||||
def test_message_file_created(self) -> None:
|
||||
self.args.create = ["How does question --create work?"]
|
||||
self.args.ask = None
|
||||
cache_dir_files = self.message_list(self.cache_dir)
|
||||
self.assertEqual(len(cache_dir_files), 0)
|
||||
create_message(self.chat, self.args)
|
||||
cache_dir_files = self.message_list(self.cache_dir)
|
||||
self.assertEqual(len(cache_dir_files), 1)
|
||||
message = Message.from_file(cache_dir_files[0])
|
||||
self.assertIsInstance(message, Message)
|
||||
self.assertEqual(message.question, Question("How does question --create work?")) # type: ignore [union-attr]
|
||||
|
||||
|
||||
class TestQuestionCmd(TestWithFakeAI):
|
||||
|
||||
def setUp(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user