aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_interceptor.py
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-01-26 13:56:24 +0800
committer苏向夜 <fu050409@163.com>2024-01-26 13:56:24 +0800
commit0e8be9de58454de079d772dec6c0ef9c1774a775 (patch)
tree9e0d4863d87524c15c232bf5cbd555d98a90aa70 /tests/test_interceptor.py
parent796455df18b87515a4f8a4933dd92d79bea58adf (diff)
downloadinfini-0e8be9de58454de079d772dec6c0ef9c1774a775.tar.gz
infini-0e8be9de58454de079d772dec6c0ef9c1774a775.zip
:recycle: refactor(infini): refacted infini as version 2.0.0-alpha.1
Diffstat (limited to 'tests/test_interceptor.py')
-rw-r--r--tests/test_interceptor.py33
1 files changed, 33 insertions, 0 deletions
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() == "这个叫苏向夜."