diff options
| author | 2024-03-04 17:56:12 +0800 | |
|---|---|---|
| committer | 2024-03-04 17:56:12 +0800 | |
| commit | f195a1e7396b7eaa23ef6f14ffebb700cf741c75 (patch) | |
| tree | 804d866854ba337d6979e86f3fc0e2c1c45df683 | |
| parent | 5b778ed5ea34862969653a4fc4e72d1debe09ee1 (diff) | |
| download | infini-f195a1e7396b7eaa23ef6f14ffebb700cf741c75.tar.gz infini-f195a1e7396b7eaa23ef6f14ffebb700cf741c75.zip | |
test(workflow): add tests for workflow feature
| -rw-r--r-- | tests/test_core.py | 11 | ||||
| -rw-r--r-- | tests/test_handlers.py | 9 | ||||
| -rw-r--r-- | tests/test_workflow.py | 47 |
3 files changed, 55 insertions, 12 deletions
diff --git a/tests/test_core.py b/tests/test_core.py index 5f3f12f1..bcab2d4a 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -1,5 +1,5 @@ from infini.core import Core -from infini.generator import TextGenerator +from infini.generator import Generator from infini.handler import Handler from infini.injector import Injector from infini.input import Input @@ -28,12 +28,10 @@ def test_core(): def add(input: Input) -> Output: result = str(sum(list(map(int, input.get_plain_text().lstrip(".add").split())))) - return Output( - "text", "test.add", status=0, block=False, variables={"result": result} - ) + return Output("text", "test.add", block=False, variables={"result": result}) def cmd(_: Input) -> Output: - return Output("text", "test.cmd", status=0, block=False) + return Output("text", "test.cmd", block=False) handler = Handler() handler.handlers = [ @@ -49,12 +47,13 @@ def test_core(): }, ] - generator = TextGenerator() + generator = Generator() generator.events = { "test.cmd": "cmd", "test.add": "{{ result }}", "block.jianlvchun": "检测到违禁词", } + generator.global_variables = {} core = Core() core.handler = handler diff --git a/tests/test_handlers.py b/tests/test_handlers.py index ee96cdab..79810ce0 100644 --- a/tests/test_handlers.py +++ b/tests/test_handlers.py @@ -11,12 +11,11 @@ def test_handler(): return Output( "text", str(sum(list(map(int, input.get_plain_text().lstrip(".add").split())))), - status=0, block=False, ) def cmd(_: Input) -> Output: - return Output("text", "cmd", status=0, block=False) + return Output("text", "cmd", block=False) handler = Handler() handler.handlers = [ @@ -45,12 +44,11 @@ def test_handler_block(): return Output( "text", str(sum(list(map(int, input.get_plain_text().lstrip(".add").split())))), - status=0, block=False, ) def cmd(_: Input) -> Output: - return Output("text", "cmd", status=0, block=True) + return Output("text", "cmd", block=True) handler = Handler() handler.handlers = [ @@ -79,10 +77,9 @@ def test_handler_interator(): yield Output( "text", str(sum(list(map(int, input.get_plain_text().lstrip(".add").split())))), - status=0, block=False, ) - yield Output("text", "ok", status=0, block=False) + yield Output("text", "ok", block=False) handler = Handler() handler.handlers = [ diff --git a/tests/test_workflow.py b/tests/test_workflow.py new file mode 100644 index 00000000..18dab9d5 --- /dev/null +++ b/tests/test_workflow.py @@ -0,0 +1,47 @@ +from infini.core import Core +from infini.generator import Generator +from infini.handler import Handler +from infini.injector import Injector +from infini.input import Input +from infini.interceptor import Interceptor +from infini.output import Output +from infini.router import Startswith + + +def test_workflow(): + def func_workflow(input: Input): + yield input.output("workflow", "test.workflow", block=True) + + input = Input("testmsg") + + handler = Handler() + handler.handlers = [ + { + "priority": 0, + "router": Startswith(""), + "handler": func_workflow, + } + ] + + interceptor = Interceptor() + interceptor.interceptors = [] + + generator = Generator() + generator.events = { + "test.cmd": "cmd", + "test.add": "{{ result }}", + "block.jianlvchun": "检测到违禁词", + } + generator.global_variables = {} + + core = Core() + core.handler = handler + core.interceptor = interceptor + core.pre_interceptor = interceptor + core.generator = generator + core.injector = Injector() + + for output in core.input(input): + assert isinstance(output, Output) + assert output.type == "workflow" + output.status = 0 |
