> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.testing.http

Deterministic HTTP test doubles for NeMo Guardrails applications.

## Module Contents

### Classes

| Name                                                                      | Description                                                         |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [`RecordingHTTPClient`](#nemoguardrails-testing-http-RecordingHTTPClient) | Record requests and return queued responses or exceptions in order. |

### Data

[`__all__`](#nemoguardrails-testing-http-__all__)

### API

```python
class nemoguardrails.testing.http.RecordingHTTPClient(
    responses: collections.abc.Iterable[nemoguardrails.http.types.HTTPResponse | BaseException] = ()
)
```

Record requests and return queued responses or exceptions in order.

**`_responses`** `= deque(responses)`

---

**`close_calls`** `= 0`

---

**`requests`** `list[HTTPRequest] = []`

---

```python
nemoguardrails.testing.http.RecordingHTTPClient.add_response(
    response: nemoguardrails.http.types.HTTPResponse | BaseException
) -> None
```

```python
nemoguardrails.testing.http.RecordingHTTPClient.close() -> None
```

async

Record a close call without discarding captured requests.

```python
nemoguardrails.testing.http.RecordingHTTPClient.request(
    method: str,
    url: str,
    headers: typing.Mapping[str, str] | None = None,
    params: typing.Mapping[str, typing.Any] | None = None,
    json: typing.Any = None,
    content: bytes | str | None = None,
    timeout: float | None = None
) -> nemoguardrails.http.types.HTTPResponse
```

async

Record a request and consume the next queued result.

**Raises:**

* `RuntimeError`: If no queued result is available.
* `BaseException`: The queued exception, when the next result is an
  exception instance.

```python
nemoguardrails.testing.http.__all__ = ['RecordingHTTPClient']
```