Releases: getsentry/responses
Releases · getsentry/responses
0.22.0
- Update
requests
dependency to the version of 2.22.0 or higher. See #584. - [BETA] Added possibility to record responses to TOML files via
@_recorder.record(file_path="out.toml")
decorator. - [BETA] Added possibility to replay responses (populate registry) from TOML files
viaresponses._add_from_file(file_path="out.toml")
method. - Fix type for the
mock
's patcher object. See #556 - Fix type annotation for
CallList
- Add
passthrough
argument toBaseResponse
object. See #557 - Fix
registries
leak. See #563 OriginalResponseShim
is removed. See #585- Add support for the
loose
version ofjson_params_matcher
via named argumentstrict_match
. See #551 - Add lists support as JSON objects in
json_params_matcher
. See #559 - Added project links to pypi listing.
delete
,get
,head
,options
,patch
,post
,put
shortcuts are now implemented usingfunctools.partialmethod
.- Fix
MaxRetryError
exception. Replace exception byRetryError
according torequests
implementation. See #572. - Adjust error message when
Retry
is exhausted. See #580.
0.21.0
- Add
threading.Lock()
to allowresponses
working withthreading
module. - Add
urllib3
Retry
mechanism. See #135 - Removed internal
_cookies_from_headers
function - Now
add
,upsert
,replace
methods return registered response.
remove
method returns list of removed responses. - Added null value support in
urlencoded_params_matcher
viaallow_blank
keyword argument - Added strict version of decorator. Now you can apply
@responses.activate(assert_all_requests_are_fired=True)
to your function to validate that all requests were executed in the wrapped function. See #183
0.20.0
- Deprecate
responses.assert_all_requests_are_fired
,responses.passthru_prefixes
,responses.target
since they are not actual properties of the class instance.
Useresponses.mock.assert_all_requests_are_fired
,
responses.mock.passthru_prefixes
,responses.mock.target
instead. - Fixed the issue when
reset()
method was called in not stopped mock. See #511
0.19.0
- Added a registry that provides more strict ordering based on the invocation index.
Seeresponses.registries.OrderedRegistry
. - Added shortcuts for each request method: delete, get, head, options, patch, post, put.
For example, to add response for POST request you can useresponses.post()
instead
ofresponses.add(responses.POST)
. - Prevent
responses.activate
decorator to leak, if wrapped function called from within another
wrapped function. Also, allow calling of above mentioned chain. See #481 for more details. - Expose
get_registry()
method ofRequestsMock
object. Replaces internal_get_registry()
. query_param_matcher
can now accept dictionaries withint
andfloat
values.- Add support for the
loose
version ofquery_param_matcher
via named argumentstrict_match
. - Added support for
async/await
functions. response_callback
is no longer executed on exceptions raised by failedResponse
s- Change logic of
_get_url_and_path
to comply with RFC 3986. Now URL match occurs by matching
schema, authority and path, where path is terminated by the first question mark ("?") or
number sign ("#") character, or by the end of the URI. - An error is now raised when both
content_type
andheaders[content-type]
are provided as parameters. - When a request isn't matched the passthru prefixes are now included in error messages.
0.18.0
- Dropped support of Python 2.7, 3.5, 3.6
- Fixed issue with type annotation for
responses.activate
decorator. See #468 - Removed internal
_is_string
and_ensure_str
functions - Removed internal
_quote
fromtest_responses.py
- Removed internal
_matches
attribute ofRequestsMock
object. - Generated decorator wrapper now uses stdlib features instead of strings and exec
- Fix issue when Deprecation Warning was raised with default arguments
inresponses.add_callback
due tomatch_querystring
. See #464
0.17.0
- This release is the last to support Python 2.7.
- Fixed issue when
response.iter_content
whenchunk_size=None
entered infinite loop - Fixed issue when
passthru_prefixes
persisted across tests.
Nowadd_passthru
is valid only within a context manager or for a single function and
cleared on exit - Deprecate
match_querystring
argument inResponse`` and
CallbackResponse. Use
responses.matchers.query_param_matcheror
responses.matchers.query_string_matcher` - Added support for non-UTF-8 bytes in
responses.matchers.multipart_matcher
- Added
responses.registries
. Now user can create custom registries to
manipulate the order of responses in the match algorithm
responses.activate(registry=CustomRegistry)
- Fixed issue with response match when requests were performed between adding responses with
same URL. See Issue #212
0.16.0
- Fixed regression with
stream
parameter deprecation, requests.session() and cookie handling. - Replaced adhoc URL parsing with
urllib.parse
. - Added
match
parameter toadd_callback
method - Added
responses.matchers.fragment_identifier_matcher
. This matcher allows you
to match request URL fragment identifier. - Improved test coverage.
- Fixed failing test in python 2.7 when
python-future
is also installed.
0.15.0
- Added
responses.PassthroughResponse
and
reponses.BaseResponse.passthrough
. These features make building passthrough
responses more compatible with dynamcially generated response objects. - Removed the unused
_is_redirect()
function from responses internals. - Added
responses.matchers.request_kwargs_matcher
. This matcher allows you
to match additional request arguments likestream
. - Added
responses.matchers.multipart_matcher
. This matcher allows you
to match request body and headers formultipart/form-data
data - Added
responses.matchers.query_string_matcher
. This matcher allows you
to match request query string, similar toresponses.matchers.query_param_matcher
. - Added
responses.matchers.header_matcher()
. This matcher allows you to match
request headers. By default only headers supplied toheader_matcher()
are checked.
You can make header matching exhaustive by passingstrict_match=True
toheader_matcher()
. - Changed all matchers output message in case of mismatch. Now message is aligned
between Python2 and Python3 versions - Deprecate
stream
argument inResponse
andCallbackResponse
- Added Python 3.10 support
0.14.0
- Added
responses.matchers
. - Moved
responses.json_params_matcher
toresponses.matchers.json_param_matcher
- Moved
responses.urlencoded_params_matcher
to
responses.matchers.urlencoded_param_matcher
- Added
responses.query_params_matcher
. This matcher allows you to match
query strings with a dictionary. - Added
auto_calculate_content_length
option toresponses.add()
. When
enabled, this option will generate aContent-Length
header
based on the number of bytes in the response body.
0.13.4
- Improve typing support
- Use URLs with normalized hostnames when comparing URLs.