All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed decorator
respx_mock
kwarg, mistreated as apytest
fixture. (PR #117) - Fixed
JSON
pattern sometimes causing aJSONDecodeError
. (PR #124)
- Snapshot and rollback of routes' pattern and name. (PR #120)
- Internally extracted a
RouteList
fromRouter
. (PR #120) - Auto registration of
Mocker
implementations and theirusing
name. (PR #121) - Added
HTTPXMocker
, optionally patchingHTTPX
. (PR #122)
- Protected a routes' pattern to be modified. (PR #120)
- Easier support for using HTTPX MockTransport. (PR #118)
- Support mixed case for
method__in
andscheme__in
pattern lookups. (PR #113)
- Handle missing path in URL pattern (PR #113)
- Refactored internal mocking vs
MockTransport
. (PR #112)
- Dropped raw request support when parsing patterns (PR #113)
- Extended
url
pattern with support forHTTPX
proxy url format. (PR #110) - Extended
host
pattern with support for regex lookup. (PR #110) - Added
respx.request(...)
. (PR #111)
- Deprecated old
MockTransport
in favour ofrespx.mock(...)
. (PR #109) - Wrapping actual
MockTransport
inMockRouter
, instead of extending. (PR #109) - Extracted a
HTTPXMock
, for transport patching, fromMockRouter
. (PR #109)
One year since first release, yay!
- Dropped all deprecated APIs and models, see
0.15.0
Changed section. (PR #105)
- Added support for content, data and json patterns. (PR #106)
- Automatic pattern registration when subclassing Pattern. (PR #108)
- Multiple snapshots to support nested mock routers. (PR #107)
- Snapshot routes and mocks when starting router, rollback when stopping. (PR #102)
- Added support for base_url combined with pattern lookups. (PR #103)
- Added support for patterns/lookups to the HTTP method helpers. (PR #104)
- Fix to not clear routes added outside mock context when stopping router. (PR #102)
- Added
respx.route(...)
with enhanced request pattern matching. (PR #96) - Added support for AND/OR when request pattern matching. (PR #96)
- Added support for adding responses to a route using % operator. (PR #96)
- Added support for both
httpx.Response
andMockResponse
. (PR #96) - Enhanced Route (RequestPattern) with
.respond(...)
response details. (PR #96) - Enhanced Route (RequestPattern) with
.pass_through()
. (PR #96) - Add support for using route as side effect decorator. (PR #98)
- Add
headers
andcookies
patterns. (PR #99) - Add
contains
andin
lookups. (PR #99) - Introduced Route
.mock(...)
in favour of callbacks. (PR #101) - Introduced Route
.return_value
and.side_effect
setters. (PR #101)
- Deprecated mixing of request pattern and response details in all API's. (PR #96)
- Deprecated passing http method as arg in
respx.add
in favour ofmethod=
. (PR #96) - Deprecated
alias=...
in favour ofname=...
when adding routes. (PR #96) - Deprecated
respx.aliases
in favour ofrespx.routes
. (PR #96) - Deprecated
RequestPattern
in favour ofRoute
. (PR #96) - Deprecated
ResponseTemplate
in favour ofMockResponse
. (PR #96) - Deprecated
pass_through=
in HTTP method API's (PR #96) - Deprecated
response
arg in side effects (callbacks). (PR #97) - Stacked responses are now recorded on same route calls. (PR #96)
- Pass-through routes no longer capture real response in call stats. (PR #97)
- Stacked responses no longer keeps and repeats last response. (PR #101)
- Removed support for regex
base_url
. (PR #96) - Dropped support for
async
side effects (callbacks). (PR #97) - Dropped support for mixing side effect (callback) and response details. (PR #97)
- Added
text
,html
andjson
content shorthands to ResponseTemplate. (PR #82) - Added
text
,html
andjson
content shorthands to high level API. (PR #93) - Added support to set
http_version
for a mocked response. (PR #82) - Added support for mocking by lowercase http methods, thanks @lbillinghamtn. (PR #80)
- Added query
params
to align with HTTPX API, thanks @jocke-l. (PR #81) - Easier API to get request/response from call stats, thanks @SlavaSkvortsov. (PR #85)
- Enhanced test to verify better content encoding by HTTPX. (PR #78)
- Added Python 3.9 to supported versions and test suite, thanks @jairhenrique. (PR #89)
ResponseTemplate.content
as proper getter, i.e. no resolve/encode to bytes. (PR #82)- Enhanced headers by using HTTPX Response when encoding raw responses. (PR #82)
- Deprecated
respx.stats
in favour ofrespx.calls
, thanks @SlavaSkvortsov. (PR #92)
- Recorded requests in call stats are pre-read like the responses. (PR #86)
- Postponed request decoding for enhanced performance. (PR #91)
- Lazy call history for enhanced performance, thanks @SlavaSkvortsov. (PR #92)
- Removed auto setting the
Content-Type: text/plain
header. (PR #82)
- Fixed support for
HTTPX
0.15. (PR #77)
- Added global
respx.pop
api, thanks @paulineribeyre. (PR #72)
- Dropped deprecated
HTTPXMock
in favour ofMockTransport
. - Dropped deprecated
respx.request
in favour ofrespx.add
. - Removed
HTTPX
max version requirement in setup.py.
- Fixed non-iterable pass-through responses. (PR #68)
- Dropped no longer needed
asynctest
dependency, in favour of built-in mock. (PR #69)
- Fixed support for
HTTPX
0.14.0. (PR #45)
- Added support for pop'ing a request pattern by alias, thanks @radeklat. (PR #60)
- Fixed mocking
HTTPX
clients instantiated with proxies. (PR #58) - Fixed matching URL patterns with missing path. (PR #59)
- Fixed support for
HTTPX
0.13. (PR #57)
- Added support for mocking out
HTTP Core
. - Added support for using mock transports with
HTTPX
clients without patching. - Include LICENSE.md in source distribution, thanks @synapticarbors.
- Renamed passed mock to decorated functions from
httpx_mock
torespx_mock
. - Renamed
HTTPXMock
toMockTransport
, but kept a deprecatedHTTPXMock
subclass. - Deprecated
respx.request()
in favour ofrespx.add()
.
- Fixed support for
HTTPX
0.12.0. (PR #45)
- Refactored high level and internal api for better editor autocompletion. (PR #44)
- Fixed usage of nested or parallel mock instances. (PR #39)
- Fixed support for
HTTPX
0.11.0 sync api. (PR #38)
- Renamed refactored httpx internals. (PR #37)
- Added support for configuring patterns
base_url
. (PR #34) - Added manifest and
py.typed
files.
- Fixed support for
HTTPX
0.9.3 refactorizations. (PR #35)
- Added documentation built with
mkdocs
. (PR #30)
- Dropped sync support and now requires
HTTPX
version 0.8+. (PR #32) - Renamed
respx.mock
module torespx.api
. (PR #29) - Refactored tests- and checks-runner to
nox
. (PR #31)
- Allowing assertions to be configured through decorator and context manager. (PR #28)
- Allows
mock
decorator to be used as sync or async context manager. (PR #27)
- Added
stats
to high level API and patterns, along withcall_count
. (PR #25)
- Allowing headers to be modified within a pattern match callback. (PR #26)
- Fixed responses in call stats when using synchronous
HTTPX
client. (PR #23)
- Added support for
pass_through
patterns. (PR #20) - Added
assert_all_mocked
feature and setting. (PR #21)
- Requires all
HTTPX
requests to be mocked.
- Renamed
activate
decorator tomock
. (PR #15)
- Added
assert_all_called
feature and setting. (PR #14)
- Clears call stats when exiting decorator.
- Renamed python package to
respx
. (PR #12) - Renamed
add()
torequest()
and added HTTP method shorthands. (PR #13)
- Renamed PyPI package to
respx
.
- Exposes
responsex
high level API along with aactivate
decorator. (PR #5) - Added support for custom pattern match callback function. (PR #7)
- Added support for repeated patterns. (PR #8)
- Added support for any
HTTPX
concurrency backend.
- Initial POC.