Skip to main content
Glama
remedy_early_reponse.py1.86 kB
# type: ignore # This is since `behave` is really mistyped and all dynamic. # Might be handled later. from behave import then, register_type from behave.api.async_step import async_run_until_complete from json import dumps, loads from typing import Any from utils.policies import EndpointPolicy, PoliciesRequests import uuid _EARLY_RESPONSE_BODY = dumps(loads('{"message": "GO Lunar"}')) def parse_int(text: str) -> int: return int(text) register_type(Int=parse_int) @when( "policies.yaml includes a fixed_response remedy for {method} {host} {path:Path} requests with status code {code:Status}" ) def step_impl(context: Any, method: str, host: str, path: str, code: int): policies_requests: PoliciesRequests = context.policies_requests remedy = { "name": f"fixed response remedy {uuid.uuid4()}", "enabled": True, "config": {"fixed_response": {"status_code": code}}, } policies_requests.endpoints.append( EndpointPolicy(method, f"{host}{path}", remedies=[remedy]) ) @when( "policies.yaml includes a fixed_response remedy for {method} {host} {path:Path} requests with invalid config" ) def step_impl(context: Any, method: str, host: str, path: str): policies_requests: PoliciesRequests = context.policies_requests remedy = { "name": f"fixed response remedy {uuid.uuid4()}", "enabled": True, "config": {"fixed_response": {"status_code": "cannot be a string!"}}, } policies_requests.endpoints.append( EndpointPolicy(method, f"{host}{path}", remedies=[remedy]) ) @then("Fixed response is returned with status code {status:Int}") @async_run_until_complete async def step_impl(context: Any, status: int): assert loads(context.proxified_response.body) == loads(_EARLY_RESPONSE_BODY) assert context.proxified_response.status == status

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server