release: public alpha 0.6.0 baseline
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import importlib.util
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest import mock
|
||||
|
||||
|
||||
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
||||
SDK_SRC = PROJECT_ROOT / "packages" / "jwebot-sdk" / "src"
|
||||
EXAMPLE_SRC = PROJECT_ROOT / "examples" / "hello-command" / "src"
|
||||
sys.path[:0] = [str(SDK_SRC), str(EXAMPLE_SRC)]
|
||||
|
||||
from jwebot_sdk import Event, PlanKind # noqa: E402
|
||||
|
||||
|
||||
SPEC = importlib.util.spec_from_file_location(
|
||||
"hello_command",
|
||||
EXAMPLE_SRC / "hello_command.py",
|
||||
)
|
||||
EXAMPLE = importlib.util.module_from_spec(SPEC)
|
||||
assert SPEC.loader is not None
|
||||
SPEC.loader.exec_module(EXAMPLE)
|
||||
|
||||
|
||||
class HelloCommandTests(unittest.TestCase):
|
||||
def event(self):
|
||||
return Event(
|
||||
event_id="event-1",
|
||||
observed_at="2026-10-14T10:00:00+08:00",
|
||||
sender="Alice",
|
||||
text="@JWeBot /hello",
|
||||
group_fingerprint="group-a",
|
||||
mention_bot=True,
|
||||
)
|
||||
|
||||
def test_handler_returns_a_structured_reply(self):
|
||||
result = EXAMPLE.handle_hello(self.event(), "world")
|
||||
self.assertEqual(result.reply.kind, PlanKind.TEXT)
|
||||
self.assertEqual(result.reply.message, "hello Alice world")
|
||||
|
||||
def test_plugin_registers_only_its_declared_command(self):
|
||||
context = mock.Mock()
|
||||
EXAMPLE.plugin(context)
|
||||
context.commands.register.assert_called_once_with(
|
||||
"/hello",
|
||||
EXAMPLE.handle_hello,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user