All Versions
Latest Version
Avg Release Cycle
46 days
Latest Release

Changelog History
Page 1

  • v0.21.0 Changes

    • โž• Add threading.Lock() to allow responses working with threading 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 via allow_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
  • v0.20.0 Changes

    • Deprecate responses.assert_all_requests_are_fired, responses.passthru_prefixes, since they are not actual properties of the class instance. Use responses.mock.assert_all_requests_are_fired, responses.mock.passthru_prefixes, instead.
    • ๐Ÿ›  Fixed the issue when reset() method was called in not stopped mock. See #511
  • v0.19.0 Changes

    • โž• Added a registry that provides more strict ordering based on the invocation index. See responses.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 use instead of responses.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 of RequestsMock object. Replaces internal _get_registry().
    • query_param_matcher can now accept dictionaries with int and float values.
    • Add support for the loose version of query_param_matcher via named argument strict_match.
    • โž• Added support for async/await functions.
    • response_callback is no longer executed on exceptions raised by failed Responses
    • 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 and headers[content-type] are provided as parameters.
    • ๐Ÿ›  When a request isn't matched the passthru prefixes are now included in error messages.
  • v0.18.0 Changes

    • โฌ‡๏ธ 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 from
    • โœ‚ Removed internal _matches attribute of RequestsMock object.
    • Generated decorator wrapper now uses stdlib features instead of strings and exec
    • ๐Ÿ›  Fix issue when Deprecation Warning was raised with default arguments in responses.add_callback due to match_querystring. See #464
  • v0.17.0 Changes

    • ๐Ÿš€ This release is the last to support Python 2.7.
    • Fixed issue when response.iter_content when chunk_size=None entered infinite loop
    • ๐Ÿ›  Fixed issue when passthru_prefixes persisted across tests. Now add_passthru is valid only within a context manager or for a single function and cleared on exit
    • ๐Ÿ—„ Deprecate match_querystring argument in Response and CallbackResponse. Use responses.matchers.query_param_matcher or 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
  • v0.16.0 Changes

    • ๐Ÿ›  Fixed regression with stream parameter deprecation, requests.session() and cookie handling.
    • ๐Ÿ“œ Replaced adhoc URL parsing with urllib.parse.
    • โž• Added match parameter to add_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.
  • v0.15.0 Changes

    • โž• 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 like stream.
    • โž• Added responses.matchers.multipart_matcher. This matcher allows you to match request body and headers for multipart/form-data data
    • Added responses.matchers.query_string_matcher. This matcher allows you to match request query string, similar to responses.matchers.query_param_matcher.
    • โž• Added responses.matchers.header_matcher(). This matcher allows you to match request headers. By default only headers supplied to header_matcher() are checked. You can make header matching exhaustive by passing strict_match=True to header_matcher().
    • ๐Ÿ”„ Changed all matchers output message in case of mismatch. Now message is aligned between Python2 and Python3 versions
    • ๐Ÿ—„ Deprecate stream argument in Response and CallbackResponse
    • โž• Added Python 3.10 support
  • v0.14.0 Changes

    • โž• Added responses.matchers.
    • Moved responses.json_params_matcher to responses.matchers.json_params_matcher
    • Moved responses.urlencoded_params_matcher to responses.matchers.urlencoded_params_matcher
    • Added responses.matchers.query_param_matcher. This matcher allows you to match query strings with a dictionary.
    • Added auto_calculate_content_length option to responses.add(). When enabled, this option will generate a Content-Length header based on the number of bytes in the response body.
  • v0.13.4 Changes

    • ๐Ÿ‘Œ Improve typing support
    • ๐Ÿ‘‰ Use URLs with normalized hostnames when comparing URLs.
  • v0.13.3 Changes

    • ๐Ÿš€ Switch from Travis to GHA for deployment.