Skip to content

Releases: getsentry/responses

0.22.0

11 Oct 16:34
Compare
Choose a tag to compare
  • 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.

0.21.0

25 May 14:20
Compare
Choose a tag to compare
  • 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

0.20.0

18 Mar 08:28
Compare
Choose a tag to compare
  • 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

0.19.0

07 Mar 07:16
Compare
Choose a tag to compare
  • 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.

0.18.0

02 Feb 19:59
Compare
Choose a tag to compare
  • 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

0.17.0

10 Jan 16:02
Compare
Choose a tag to compare
  • 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_matcherorresponses.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

16 Nov 15:29
Compare
Choose a tag to compare
  • 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.

0.15.0

26 Oct 20:13
Compare
Choose a tag to compare
  • 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

0.14.0

10 Sep 16:04
Compare
Choose a tag to compare
  • Added responses.matchers.
  • Moved responses.json_params_matcher to responses.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 to responses.add(). When
    enabled, this option will generate a Content-Length header
    based on the number of bytes in the response body.

0.13.4

09 Aug 09:41
Compare
Choose a tag to compare
  • Improve typing support
  • Use URLs with normalized hostnames when comparing URLs.