From 0246ff4b229e59e8795497c3c7c5267d7396ebc2 Mon Sep 17 00:00:00 2001 From: kolo Date: Mon, 24 Mar 2025 10:44:49 +0300 Subject: [PATCH] adding new method for App and new system tests --- argenta/app/entity.py | 9 +++++++++ mock/mock_app/main.py | 2 ++ .../test_system_handling_non_standard_behavior.py | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/argenta/app/entity.py b/argenta/app/entity.py index a43dbb6..301615c 100644 --- a/argenta/app/entity.py +++ b/argenta/app/entity.py @@ -29,6 +29,7 @@ class App: line_separate: str = '', command_group_description_separate: str = '', repeat_command_groups: bool = True, + messages_on_startup: list[str] = None, print_func: Callable[[str], None] = print) -> None: self.prompt = prompt self.print_func = print_func @@ -43,6 +44,7 @@ class App: self.command_group_description_separate = command_group_description_separate self.ignore_command_register = ignore_command_register self.repeat_command_groups = repeat_command_groups + self.messages_on_startup = messages_on_startup if messages_on_startup else [] self._routers: list[Router] = [] self._description_message_pattern: str = '[{command}] *=*=* {description}' @@ -60,6 +62,9 @@ class App: self.print_func(self.initial_message) + for message in self.messages_on_startup: + self.print_func(message) + if not self.repeat_command_groups: self._print_command_group_description() self.print_func(self.prompt) @@ -173,6 +178,10 @@ class App: self._empty_input_command_handler = handler + def add_message_on_startup(self, message: str) -> None: + self.messages_on_startup.append(message) + + def include_router(self, router: Router) -> None: if not isinstance(router, Router): raise InvalidRouterInstanceException() diff --git a/mock/mock_app/main.py b/mock/mock_app/main.py index 56a1586..fc85661 100644 --- a/mock/mock_app/main.py +++ b/mock/mock_app/main.py @@ -25,6 +25,8 @@ def main(): app.set_initial_message(initial_greeting) app.set_farewell_message(goodbye_message) + app.add_message_on_startup('--help for get helping\n\n') + app.set_invalid_input_flags_handler(lambda raw_command: print(f"Invalid input flags: {raw_command}")) app.set_unknown_command_handler(lambda command: print(f"Unknown command: {command.get_trigger()}")) app.set_repeated_input_flags_handler(lambda raw_command: print(f"Repeated input flags: {raw_command}")) diff --git a/tests/system_tests/test_system_handling_non_standard_behavior.py b/tests/system_tests/test_system_handling_non_standard_behavior.py index 7d5e90a..88f9bf5 100644 --- a/tests/system_tests/test_system_handling_non_standard_behavior.py +++ b/tests/system_tests/test_system_handling_non_standard_behavior.py @@ -7,7 +7,7 @@ import re from argenta.app import App from argenta.command import Command from argenta.router import Router -from argenta.command.flag import Flag, FlagsGroup +from argenta.command.flag import FlagsGroup from argenta.command.flag.defaults import DefaultFlags