smithy-http0.3.0
smithy-http0.3.0
Published
HTTP components for Smithy tooling.
pip install smithy-http
Package Downloads
Authors
Project URLs
Requires Python
>=3.12
smithy-http
This package provides primitives and interfaces for http functionality in tooling generated by Smithy.
Testing
The smithy_http.testing module provides shared utilities for testing HTTP functionality in smithy-python clients.
MockHTTPClient
The MockHTTPClient allows you to test smithy-python clients without making actual network calls. It implements the HTTPClient interface and provides configurable responses for functional testing.
Basic Usage
from smithy_http.testing import MockHTTPClient
# Create mock client and configure responses
mock_client = MockHTTPClient()
mock_client.add_response(
status=200,
headers=[("Content-Type", "application/json")],
body=b'{"message": "success"}'
)
# Use with your smithy-python client
config = Config(transport=mock_client)
client = TestSmithyServiceClient(config=config)
# Test your client logic
result = await client.some_operation({"input": "data"})
# Inspect what requests were made
assert mock_client.call_count == 1
captured_request = mock_client.captured_requests[0]
assert result.message == "success"
Utilities
create_test_request(): Helper for creating test HTTPRequest objectsMockHTTPClientError: Exception raised when no responses are queued