mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
starting refactor tests
This commit is contained in:
@@ -36,6 +36,9 @@ class BaseFlag:
|
||||
"""
|
||||
return self._prefix
|
||||
|
||||
def __eq__(self, other) -> bool:
|
||||
return self.get_string_entity() == other.get_string_entity()
|
||||
|
||||
|
||||
class Flag(BaseFlag):
|
||||
def __init__(self, name: str,
|
||||
@@ -110,3 +113,6 @@ class InputFlag(BaseFlag):
|
||||
"""
|
||||
self._flag_value = value
|
||||
|
||||
def __eq__(self, other) -> bool:
|
||||
return self.get_string_entity() == other.get_string_entity() and self.get_value() == other.get_value()
|
||||
|
||||
|
||||
@@ -58,6 +58,15 @@ class BaseFlags(Generic[FlagType]):
|
||||
def __getitem__(self, item):
|
||||
return self._flags[item]
|
||||
|
||||
def __eq__(self, other):
|
||||
if len(self.get_flags()) != len(other.get_flags()):
|
||||
return False
|
||||
else:
|
||||
for flag, other_flag in zip(self.get_flags(), other.get_flags()):
|
||||
if not flag == other_flag:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
class Flags(BaseFlags[Flag]): pass
|
||||
|
||||
|
||||
@@ -3,6 +3,11 @@ from argenta.response.status import Status
|
||||
|
||||
|
||||
class Response:
|
||||
__slots__ = ('status',
|
||||
'valid_flags',
|
||||
'undefined_flags',
|
||||
'invalid_value_flags')
|
||||
|
||||
def __init__(self, status: Status = None,
|
||||
valid_flags: ValidInputFlags = ValidInputFlags(),
|
||||
undefined_flags: UndefinedInputFlags = UndefinedInputFlags(),
|
||||
|
||||
@@ -73,9 +73,7 @@ class Router:
|
||||
response: Response = Response()
|
||||
if handle_command.get_registered_flags().get_flags():
|
||||
if input_command_flags.get_flags():
|
||||
flags, status = self._validate_input_flags(handle_command, input_command_flags)
|
||||
response.valid_flags, response.undefined_flags, response.invalid_value_flags = flags
|
||||
response.status = status
|
||||
response: Response = self._structuring_input_flags(handle_command, input_command_flags)
|
||||
command_handler.handling(response)
|
||||
else:
|
||||
response.status = Status.ALL_FLAGS_VALID
|
||||
@@ -92,15 +90,12 @@ class Router:
|
||||
|
||||
|
||||
@staticmethod
|
||||
def _validate_input_flags(handled_command: Command, input_flags: InputFlags) -> tuple[tuple[ValidInputFlags,
|
||||
UndefinedInputFlags,
|
||||
InvalidValueInputFlags],
|
||||
Status]:
|
||||
def _structuring_input_flags(handled_command: Command, input_flags: InputFlags) -> Response:
|
||||
"""
|
||||
Private. Validates flags of input command
|
||||
:param handled_command: entity of the handled command
|
||||
:param input_flags:
|
||||
:return: is flags of input command valid as bool
|
||||
:return: entity of response as Response
|
||||
"""
|
||||
valid_input_flags: ValidInputFlags = ValidInputFlags()
|
||||
invalid_value_input_flags: InvalidValueInputFlags = InvalidValueInputFlags()
|
||||
@@ -124,7 +119,12 @@ class Router:
|
||||
else:
|
||||
status = Status.UNDEFINED_AND_INVALID_FLAGS
|
||||
|
||||
return (valid_input_flags, undefined_input_flags, invalid_value_input_flags), status
|
||||
response = Response(invalid_value_flags=invalid_value_input_flags,
|
||||
valid_flags=valid_input_flags,
|
||||
status=status,
|
||||
undefined_flags=undefined_input_flags,)
|
||||
|
||||
return response
|
||||
|
||||
|
||||
@staticmethod
|
||||
@@ -160,7 +160,7 @@ class Router:
|
||||
|
||||
arg_annotation: Type = get_annotations(func)[transferred_args[0]]
|
||||
if not arg_annotation is Response:
|
||||
Console().print(f'\n\nFile "{getsourcefile(func).replace("\\", "/")}", line {getsourcelines(func)[1]+1}\n'
|
||||
Console().print(f'\n\nFile "{getsourcefile(func)}", line {getsourcelines(func)[1]+1}\n'
|
||||
f'[b red]WARNING:[/b red] [i]The typehint of argument([green]{transferred_args[0]}[/green]) passed to the handler is [/i][blue]{Response}[/blue],'
|
||||
f' [i]but[/i] [bold blue]{arg_annotation}[/bold blue] [i]is specified[/i]', highlight=False)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user