aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_interceptor.py
diff options
context:
space:
mode:
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() == "这个叫苏向夜."