"""Runs every generated client method against the recording kernel stub.""" from mizan_client import MizanClient from mizan_client.client import UserContextData from mizan_client.types import ( EchoInput, EchoOutput, FindUserInput, FindUserOutput, OrderOutput, RenameUserInput, RenameUserOutput, UpdateProfileInput, UpdateProfileOutput, UserProfileOutput, WhoamiOutput, ) client = MizanClient("http://127.0.0.1:9/api/mizan") kernel = client._inner kernel.reply = {"message": "hi"} echoed = client.call_echo(EchoInput(text="hello")) assert isinstance(echoed, EchoOutput) assert echoed.message == "hi" assert kernel.calls[-1] == ("echo", {"text": "hello"}) kernel.reply = {"email": "ryth@example.com", "authenticated": True} identity = client.call_whoami() assert isinstance(identity, WhoamiOutput) assert identity.authenticated is True assert kernel.calls[-1] == ("whoami", {}) kernel.reply = {"user_id": 1, "name": "ryth"} found = client.call_find_user(FindUserInput(user_id=1)) assert isinstance(found, FindUserOutput) assert found.name == "ryth" assert kernel.calls[-1] == ("find_user", {"user_id": 1}) kernel.reply = None assert client.call_find_user(FindUserInput(user_id=2)) is None kernel.reply = {"user_id": 1, "name": "renamed"} renamed = client.call_rename_user(RenameUserInput(user_id=1, name="renamed")) assert isinstance(renamed, RenameUserOutput) assert renamed.name == "renamed" kernel.reply = {"ok": True} updated = client.call_update_profile(UpdateProfileInput(user_id=1, name="renamed")) assert isinstance(updated, UpdateProfileOutput) assert updated.ok is True kernel.reply = { "user_orders": [{"id": 7, "user_id": 1, "total": 42}], "user_profile": {"user_id": 1, "name": "ryth"}, } bundle = client.fetch_user_context(1) assert isinstance(bundle, UserContextData) assert isinstance(bundle.user_profile, UserProfileOutput) assert isinstance(bundle.user_orders[0], OrderOutput) assert bundle.user_orders[0].total == 42 assert kernel.calls[-1] == ("user", {"user_id": 1}) received: list[dict] = [] subscription = client.subscribe_user_context(1, received.append) assert subscription.name == "user" assert subscription.params == {"user_id": 1} client.invalidate("user") client.invalidate_scoped("user", {"user_id": 1}) assert kernel.invalidated == [("user", None), ("user", {"user_id": 1})] print("generated python client exercised")