From 0e8be9de58454de079d772dec6c0ef9c1774a775 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Fri, 26 Jan 2024 13:56:24 +0800 Subject: :recycle: refactor(infini): refacted infini as version 2.0.0-alpha.1 --- tests/test_interceptor.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tests/test_interceptor.py (limited to 'tests/test_interceptor.py') diff --git a/tests/test_interceptor.py b/tests/test_interceptor.py new file mode 100644 index 00000000..df5b6750 --- /dev/null +++ b/tests/test_interceptor.py @@ -0,0 +1,33 @@ +from infini.input import Input +from infini.interceptor import Interceptor +from infini.output import Output +from infini.router import ContainsRouter + + +def test_interceptor(): + input = Input("这个人叫简律纯.") + valid_input = Input("这个叫苏向夜.") + + def intercept(_: Input) -> Input | Output: + output = Output() + output.block = True # TODO 拦截器阻塞标识 + output.name = "block.jianlvchun" + output.status = 0 + output.type = "text" + return output + + interceptor = Interceptor() + interceptor.interceptors = [ + { + "priority": 1, + "router": ContainsRouter("简律纯"), + "handler": intercept, + } + ] + output = interceptor.input(input) + assert isinstance(output, Output) + assert output.name == "block.jianlvchun" + + valid_output = interceptor.input(valid_input) + assert isinstance(valid_output, Input) + assert valid_output.get_plain_text() == "这个叫苏向夜." -- cgit v1.2.3-70-g09d2