pyzillow
pyzillow copied to clipboard
Update responses to 0.22.0
This PR updates responses from 0.10.14 to 0.22.0.
Changelog
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
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
------
* 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
------
* 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
------
* 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 `Response`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` 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
------
* 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
------
* 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
0.16.0
------
* 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
------
* 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
------
* 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.
0.13.4
------
* Improve typing support
* Use URLs with normalized hostnames when comparing URLs.
0.13.3
------
* Switch from Travis to GHA for deployment.
0.13.2
------
* Fixed incorrect type stubs for `add_callback`
0.13.1
------
* Fixed packages not containing type stubs.
0.13.0
------
* `responses.upsert()` was added. This method will `add()` a response if one
has not already been registered for a URL, or `replace()` an existing
response.
* `responses.registered()` was added. The method allows you to get a list of
the currently registered responses. This formalizes the previously private
`responses.mock._matches` method.
* A more useful `__repr__` has been added to `Response`.
* Error messages have been improved.
0.12.1
------
* `responses.urlencoded_params_matcher` and `responses.json_params_matcher` now
accept None to match empty requests.
* Fixed imports to work with new `urllib3` versions.
* `request.params` now allows parameters to have multiple values for the same key.
* Improved ConnectionError messages.
0.12.0
------
- Remove support for Python 3.4.
0.11.0
------
- Added the `match` parameter to `add()`.
- Added `responses.urlencoded_params_matcher()` and `responses.json_params_matcher()`.
0.10.16
-------
- Add a requirements pin to urllib3. This helps prevent broken install states where
cookie usage fails.
0.10.15
-------
- Added `assert_call_count` to improve ergonomics around ensuring a mock was called.
- Fix incorrect handling of paths with query strings.
- Add Python 3.9 support to CI matrix.
Links
- PyPI: https://pypi.org/project/responses
- Changelog: https://pyup.io/changelogs/responses/
- Repo: https://github.com/getsentry/responses
Coverage increased (+1.4%) to 71.698% when pulling faaa297b069bdf87fc1f33bda17762241cb121f7 on pyup-update-responses-0.10.14-to-0.22.0 into 929b833a4fa7721caadab5522b3b116955a25e70 on develop.
Closing this in favor of #120