forked from pool/python-pytest-httpx
* Requires httpx==0.28.* OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-httpx?expand=0&rev=23
236 lines
12 KiB
Plaintext
236 lines
12 KiB
Plaintext
-------------------------------------------------------------------
|
|
Mon Dec 16 04:00:04 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
|
|
|
|
- Update to 0.35.0:
|
|
* Requires httpx==0.28.*
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Nov 25 09:16:55 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 0.34.0:
|
|
* `is_optional` parameter is now available on responses and
|
|
callbacks registration. Allowing to add optional responses
|
|
while keeping other responses as mandatory. Refer to
|
|
documentation for more details.
|
|
* `is_reusable` parameter is now available on responses and
|
|
callbacks registration. Allowing to add multi-match responses
|
|
while keeping other responses as single-match. Refer to
|
|
documentation for more details.
|
|
* `httpx_mock.get_request` will now also propose to refine
|
|
filters if more than one request is found instead of only
|
|
proposing to switch to `httpx_mock.get_requests`.
|
|
* Explicit support for python `3.13`.
|
|
* `should_mock` option (callable returning a boolean) is now
|
|
available, defaulting to always returning `True`. Refer to
|
|
documentation for more details.
|
|
* Matching on the full multipart body can now be performed
|
|
using `match_files` and `match_data` parameters. Refer to
|
|
documentation for more details.
|
|
* Matching on extensions (including timeout) can now be
|
|
performed using `match_extensions` parameter. Refer to
|
|
documentation for more details.
|
|
* The following option is now available:
|
|
* `can_send_already_matched_responses` (boolean), defaulting to
|
|
`False`.
|
|
* Assertion failure message in case of unmatched responses is
|
|
now linking documentation on how to deactivate the check.
|
|
* Assertion failure message in case of unmatched requests is
|
|
now linking documentation on how to deactivate the check.
|
|
* `httpx.TimeoutException` message issued in case of unmatched
|
|
request is now linking documentation on how to reuse
|
|
responses (in case some responses are already matched).
|
|
* Documentation now clearly state the risks associated with
|
|
changing the default options.
|
|
* Assertion failure message in case of unmatched requests at
|
|
teardown is now describing requests in a more user-friendly
|
|
way.
|
|
* Assertion failure message in case of unmatched requests at
|
|
teardown is now prefixing requests with `- ` to highlight the
|
|
fact that this is a list, preventing misapprehension in case
|
|
only one element exists.
|
|
* Assertion failure message in case of unmatched responses at
|
|
teardown is now prefixing responses with `- ` to highlight
|
|
the fact that this is a list, preventing misapprehension in
|
|
case only one element exists.
|
|
* `httpx.TimeoutException` message issued in case of unmatched
|
|
request is now prefixing available responses with `- ` to
|
|
highlight the fact that this is a list, preventing
|
|
misapprehension in case only one element exists.
|
|
* `httpx.TimeoutException` message issued in case of unmatched
|
|
request is now listing unmatched responses (in registration
|
|
order) before already matched one (still in registration
|
|
order).
|
|
* The incentive behind this change is to help identify a
|
|
potential mismatch faster as the first unmatched response is
|
|
the most likely to be the one expected to match.
|
|
* Response description in failure messages
|
|
(`httpx.TimeoutException` message issued in case of unmatched
|
|
request or assertion failure message in case of unmatched
|
|
responses at teardown) is now displaying if the response was
|
|
already matched or not and less misleading in it's phrasing
|
|
about what it can match (a single request by default).
|
|
|
|
* ### Changed
|
|
* Last registered matching response will not be reused by
|
|
default anymore in case all matching responses have already
|
|
been sent.
|
|
* This behavior can be changed thanks to the new `pytest.mark.h
|
|
ttpx_mock(can_send_already_matched_responses=True)` option.
|
|
* The incentive behind this change is to spot regression if a
|
|
request was issued more than the expected number of times.
|
|
* `HTTPXMock` class was only exposed for type hinting purpose.
|
|
This is now explained in the class docstring.
|
|
* As a result this is the last time a change to `__init__`
|
|
signature will be documented and considered a breaking
|
|
change.
|
|
* Future changes will not be documented and will be considered
|
|
as internal refactoring not worth a version bump.
|
|
* `__init__` now expects one parameter, the newly introduced
|
|
(since [0.31.0]) options.
|
|
* `HTTPXMockOptions` class was never intended to be exposed and
|
|
is now marked as private.
|
|
* `httpx_mock` marker can now be defined at different levels
|
|
for a single test.
|
|
* It is now possible to match on content provided as async
|
|
iterable by the client.
|
|
* Tests will now fail at teardown by default if some requests
|
|
were issued but were not matched.
|
|
* This behavior can be changed thanks to the new `pytest.mark.h
|
|
ttpx_mock(assert_all_requests_were_expected=False)` option.
|
|
* The incentive behind this change is to spot unexpected
|
|
requests in case code is swallowing `httpx.TimeoutException`.
|
|
* The `httpx_mock` fixture is now configured using a marker
|
|
(many thanks to `Frazer McLean`).
|
|
* ```python
|
|
* # Apply marker to whole module
|
|
* pytestmark = pytest.mark.httpx_mock(assert_all_responses_were
|
|
_requested=False)
|
|
|
|
* # Or to specific tests
|
|
* @pytest.mark.httpx_mock(non_mocked_hosts=[...])
|
|
* def test_foo(httpx_mock):
|
|
* ...
|
|
* ```
|
|
* The following options are available:
|
|
* `assert_all_responses_were_requested` (boolean), defaulting
|
|
to `True`.
|
|
* `assert_all_requests_were_expected` (boolean), defaulting to
|
|
`True`.
|
|
* `non_mocked_hosts` (iterable), defaulting to an empty list,
|
|
meaning all hosts are mocked.
|
|
* `httpx_mock.reset` do not expect any parameter anymore and
|
|
will only reset the mock state (no assertions will be
|
|
performed).
|
|
* `pytest` `7` is not supported anymore (`pytest` `8` has been
|
|
out for 9 months already).
|
|
* `assert_all_responses_were_requested` fixture is not
|
|
available anymore, use `pytest.mark.httpx_mock(assert_all_res
|
|
ponses_were_requested=False)` instead.
|
|
* `non_mocked_hosts` fixture is not available anymore, use
|
|
`pytest.mark.httpx_mock(non_mocked_hosts=[])` instead.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Feb 1 21:21:49 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 0.29.0:
|
|
* Add support for `pytest`==8.\*
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Jan 9 21:38:43 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 0.28.0:
|
|
* Requires `httpx`==0.26.\*
|
|
|
|
-------------------------------------------------------------------
|
|
Sun Nov 19 10:48:03 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 0.27.0:
|
|
* Explicit support for python `3.12`.
|
|
* Custom HTTP transport are now handled (parent call to
|
|
`handle_async_request` or `handle_request`).
|
|
* Only HTTP transport are now mocked, this should not have any
|
|
impact, however if it does, please feel free to open an issue
|
|
describing your use case.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Nov 7 19:44:01 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 0.26.0:
|
|
* Added `proxy_url` parameter which allows matching on proxy
|
|
URL.
|
|
* Requires `httpx`==0.25.\*
|
|
* Added `match_json` parameter which allows matching on JSON
|
|
decoded body (matching against python representation instead
|
|
of bytes).
|
|
* Even if it was never documented as a feature, the
|
|
`match_headers` parameter was not considering header names
|
|
case when matching.
|
|
* Matching on headers does not ignore name case anymore, the
|
|
name must now be cased as sent (as some servers might expect
|
|
a specific case).
|
|
* Add `:Any` type hint to `**matchers` function arguments to
|
|
satisfy strict type checking mode in `pyright`.
|
|
* Python `3.7` and `3.8` are no longer supported.
|
|
* `httpx_mock.add_response` is now returning a new
|
|
`httpx.Response` instance upon each matching request.
|
|
Preventing unnecessary recursion in streams.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Jul 1 09:13:35 UTC 2023 - ecsos <ecsos@opensuse.org>
|
|
|
|
- Add %{?sle15_python_module_pythons}
|
|
|
|
-------------------------------------------------------------------
|
|
Thu May 4 22:53:10 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|
|
|
- update to 0.22.0:
|
|
* Requires `httpx`==0.24.\*
|
|
* Update version specifiers for `pytest` dependency to support
|
|
`packaging` `23`.
|
|
* Add explicit support for `python` `3.11`.
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jan 16 16:21:19 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
|
|
|
|
- Update to 0.21.2
|
|
* URL containing non ASCII characters in query can now be matched.
|
|
* Requests are now cleared when calling httpx_mock.reset.
|
|
- 0.21.1
|
|
* httpx_mock.add_callback now handles async callbacks.
|
|
- Unpin httpx and pytest in python metadata
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Jul 25 10:37:48 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
|
|
|
- Update to 0.21.0
|
|
* Requires httpx>=0.23.*
|
|
* Python 3.6 is no longer supported.
|
|
- Unpin httpx in python metadata
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Mar 3 00:16:34 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
|
|
|
- Upgrade to 0.20.0:
|
|
* Add support for [`pytest`](https://docs.pytest.org)==7.\* ([`pytest`](https://docs.pytest.org)==6.\* is still supported for now). (many thanks to [`Craig Blaszczyk`](https://github.com/jakul))
|
|
* Requires [`httpx`](https://www.python-httpx.org)==0.22.\*
|
|
* Python 3.6 is no longer supported.
|
|
* Callback are now executed as expected when there is a matching already sent response.
|
|
* `httpx_mock.add_response` `data`, `files` and `boundary` parameters have been removed. It was deprecated since `0.17.0`. Refer to this version changelog entry for more details on how to update your code.
|
|
* An exception can now be raised without creating a callback by using `httpx_mock.add_exception` method.
|
|
* `httpx_mock.add_response` `data` parameter is only used for multipart content. It was deprecated since `0.14.0`. Refer to this version changelog entry for more details on how to update your code.
|
|
* `pytest_httpx.to_response` function has been removed. It was deprecated since `0.14.0`. Refer to this version changelog entry for more details on how to update your code.
|
|
* Callbacks are now expected to have a single parameter, the request. The previously second parameter `extensions`, can still be accessed via `request.extensions`.
|
|
* Callbacks are now expected to return a `httpx.Response` instance instead of the previous `httpcore.Response` tuple. As a consequence, `pytest_httpx.to_response` now returns a `httpx.Response` instance.
|
|
* `httpx_mock.add_response` now allows to explicitly provide bytes using `content` parameter.
|
|
* `httpx_mock.add_response` now allows to explicitly provide string using `text` parameter.
|
|
* `httpx_mock.add_response` now allows to explicitly provide HTML string content using `html` parameter.
|
|
* `httpx_mock.add_response` now allows to explicitly provide streamed content using `stream` parameter and the new `pytest_httpx.IteratorStream` class.
|
|
* `pytest_httpx.to_response` is now deprecated in favor of `httpx.Response`. This function will be removed in a future release.
|
|
* `httpx_mock.add_response` `data` parameter should now only be used for multipart content. Instead, use the appropriate parameter amongst `content`, `text`, `html` or `stream`.
|
|
* Type information is now provided following [PEP 561](https://www.python.org/dev/peps/pep-0561/) (many thanks to [`Caleb Ho`](https://github.com/calebho)).
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jun 3 08:53:42 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
|
|
|
- Initial release of python-pytest-httpx 0.12.0
|