All Versions
46
Latest Version
Avg Release Cycle
46 days
Latest Release
-

Changelog History
Page 1

  • v0.23.0 Changes

    • โž• Add Python 3.11 support
    • ๐Ÿ›  Fix type annotations of CallList.
    • Replaced toml with tomli and tomli-w.
  • v0.22.0 Changes

    • โšก๏ธ 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 via responses._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 to BaseResponse object. See #557
    • ๐Ÿ›  Fix registries leak. See #563
    • ๐Ÿ‘€ OriginalResponseShim is removed. See #585
    • Add support for the loose version of json_params_matcher via named argument strict_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 using functools.partialmethod.
    • ๐Ÿ›  Fix MaxRetryError exception. Replace exception by RetryError according to requests implementation. See #572.
    • ๐Ÿ‘€ Adjust error message when Retry is exhausted. See #580.
  • 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, responses.target since they are not actual properties of the class instance. Use responses.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
  • 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 responses.post() 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 test_responses.py
    • โœ‚ 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.