24 lines
639 B
Python
24 lines
639 B
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from yuxi.channel.domain.middleware.middleware import Middleware, CallNext
|
||
|
|
from yuxi.channel.domain.service.message_context import MessageContext
|
||
|
|
|
||
|
|
|
||
|
|
def test_middleware_is_protocol() -> None:
|
||
|
|
assert hasattr(Middleware, "name")
|
||
|
|
assert hasattr(Middleware, "process")
|
||
|
|
|
||
|
|
|
||
|
|
class _FakeMiddleware:
|
||
|
|
@property
|
||
|
|
def name(self) -> str:
|
||
|
|
return "fake"
|
||
|
|
|
||
|
|
async def process(self, ctx: MessageContext, call_next: CallNext) -> MessageContext:
|
||
|
|
return await call_next(ctx)
|
||
|
|
|
||
|
|
|
||
|
|
def test_fake_middleware_is_instance() -> None:
|
||
|
|
obj = _FakeMiddleware()
|
||
|
|
assert isinstance(obj, Middleware)
|