MCPcopy
hub / github.com/hacs/integration / ResponseMocker

Class ResponseMocker

tests/common.py:425–444  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

423
424
425class ResponseMocker:
426 calls: list[dict[str, Any]] = []
427 responses: dict[str, MockedResponse] = {}
428
429 def add(self, url: str, response: MockedResponse) -> None:
430 self.responses[url] = response
431
432 def get(self, url: str, *args, **kwargs) -> MockedResponse:
433 data = {"url": url, "args": list(args), "kwargs": kwargs}
434 if (request := REQUEST_CONTEXT.get()) is not None:
435 data["_test_caller"] = f"{
436 request.node.location[0]}::{request.node.name}"
437 data["_uses_setup_integration"] = request.node.name != "test_integration_setup" and (
438 "setup_integration" in request.fixturenames or "hacs" in request.fixturenames
439 )
440 self.calls.append(data)
441 response = self.responses.get(url, None)
442 if response is not None and response.keep:
443 return response
444 return self.responses.pop(url, None)
445
446
447class ProxyClientSession(ClientSession):

Callers 4

response_mockerFunction · 0.90
track_api_usageFunction · 0.90
ProxyClientSessionClass · 0.85
client_session_proxyFunction · 0.85

Calls

no outgoing calls

Tested by 2

response_mockerFunction · 0.72
track_api_usageFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…