MCPcopy
hub / github.com/nonebot/nonebot2 / test_trie

Function test_trie

tests/test_rule.py:84–145  ·  view source on GitHub ↗
(app: App)

Source from the content-addressed store, hash-verified

82
83@pytest.mark.anyio
84async def test_trie(app: App):
85 TrieRule.add_prefix("/fake-prefix", TRIE_VALUE("/", ("fake-prefix",)))
86
87 async with app.test_api() as ctx:
88 bot = ctx.create_bot()
89 message = FakeMessage("/fake-prefix some args")
90 event = make_fake_event(_message=message)()
91 state = {}
92 TrieRule.get_value(bot, event, state)
93 assert state[PREFIX_KEY] == CMD_RESULT(
94 command=("fake-prefix",),
95 raw_command="/fake-prefix",
96 command_arg=FakeMessage("some args"),
97 command_start="/",
98 command_whitespace=" ",
99 )
100
101 message = FakeMessageSegment.text("/fake-prefix ") + FakeMessageSegment.image(
102 "fake url"
103 )
104 event = make_fake_event(_message=message)()
105 state = {}
106 TrieRule.get_value(bot, event, state)
107 assert state[PREFIX_KEY] == CMD_RESULT(
108 command=("fake-prefix",),
109 raw_command="/fake-prefix",
110 command_arg=FakeMessage(FakeMessageSegment.image("fake url")),
111 command_start="/",
112 command_whitespace=" ",
113 )
114
115 message = FakeMessageSegment.text("/fake-prefix ") + FakeMessageSegment.text(
116 " some args"
117 )
118 event = make_fake_event(_message=message)()
119 state = {}
120 TrieRule.get_value(bot, event, state)
121 assert state[PREFIX_KEY] == CMD_RESULT(
122 command=("fake-prefix",),
123 raw_command="/fake-prefix",
124 command_arg=FakeMessage("some args"),
125 command_start="/",
126 command_whitespace=" ",
127 )
128
129 message = (
130 FakeMessageSegment.text("/fake-prefix ")
131 + FakeMessageSegment.text(" ")
132 + FakeMessageSegment.text(" some args")
133 )
134 event = make_fake_event(_message=message)()
135 state = {}
136 TrieRule.get_value(bot, event, state)
137 assert state[PREFIX_KEY] == CMD_RESULT(
138 command=("fake-prefix",),
139 raw_command="/fake-prefix",
140 command_arg=FakeMessage("some args"),
141 command_start="/",

Callers

nothing calls this directly

Calls 8

TRIE_VALUEClass · 0.90
FakeMessageClass · 0.90
make_fake_eventFunction · 0.90
CMD_RESULTClass · 0.90
add_prefixMethod · 0.80
get_valueMethod · 0.80
textMethod · 0.80
imageMethod · 0.80

Tested by

no test coverage detected