aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-01-26 23:30:17 +0800
committer苏向夜 <fu050409@163.com>2024-01-26 23:30:17 +0800
commitf63c697bd0268b65ae984ed4457ec345034e4057 (patch)
tree12b93613c3664483a09af5090790a75c04fa98dc /tests
parent4316bdefad91f1f239dff393fc0741df74c2480f (diff)
downloadinfini-f63c697bd0268b65ae984ed4457ec345034e4057.tar.gz
infini-f63c697bd0268b65ae984ed4457ec345034e4057.zip
:construction_worker: test(ci): add register tests
Diffstat (limited to 'tests')
-rw-r--r--tests/test_register.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/test_register.py b/tests/test_register.py
new file mode 100644
index 00000000..c35b5717
--- /dev/null
+++ b/tests/test_register.py
@@ -0,0 +1,57 @@
+from infini.core import Core
+from infini.generator import Generator
+from infini.handler import Handler
+from infini.input import Input
+from infini.interceptor import Interceptor
+from infini.output import Output
+from infini.register import Register
+
+
+def test_register():
+ blocked_god_input = Input("这是苏向夜的杰作.")
+ snh_input = Input("撅少年狐!")
+
+ register = Register()
+
+ @register.pre_interceptor("苏向夜", priority=0)
+ def test_pre_interceptor(_: Input):
+ return Output("text", "block.sxy", block=True)
+
+ @register.handler("撅少年狐")
+ def test_handelr(_: Input):
+ return Output("text", "block.snh", block=True)
+
+ register.regist_textevent("block.sxy", "不可直呼{{ sxy_id }}的ID")
+ register.regist_textevent("block.snh", "不许撅{{ get_snh_id() }}")
+
+ register.regist_variable("sxy_id", "苏向夜")
+
+ @register.dynamic_variable()
+ def get_snh_id():
+ return "少年狐"
+
+ @register.interceptor("苏向夜", priority=0)
+ def test_interceptor(_: Input):
+ return Output("text", "block.sxy", block=True)
+
+ pre_interceptor = Interceptor()
+ pre_interceptor.interceptors = register.pre_interceptors
+ handler = Handler()
+ handler.handlers = register.handlers
+ generator = Generator()
+ generator.events = register.events
+ generator.global_variables = register.global_variables
+ interceptor = Interceptor()
+ interceptor.interceptors = register.interceptors
+
+ core = Core()
+ core.pre_interceptor = pre_interceptor
+ core.handler = handler
+ core.generator = generator
+ core.interceptor = interceptor
+
+ for output in core.input(blocked_god_input):
+ assert output == "不可直呼苏向夜的ID"
+
+ for output in core.input(snh_input):
+ assert output == "不许撅少年狐"