File python-pytest-httpx.changes of Package python-pytest-httpx
-------------------------------------------------------------------
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