diff --git a/0001-Add-a-network-pytest-mark-for-tests-that-use-the-network.patch b/0001-Add-a-network-pytest-mark-for-tests-that-use-the-network.patch deleted file mode 100644 index 0ccd28c..0000000 --- a/0001-Add-a-network-pytest-mark-for-tests-that-use-the-network.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 55b8ee87b0e57f3dda924e3d01ee8eaa39c4aa81 Mon Sep 17 00:00:00 2001 -From: Antonio Larrosa -Date: Mon, 7 Jun 2021 18:32:29 +0200 -Subject: [PATCH] Add a network pytest mark for tests that use the network - -Sometimes it's useful to have the tests that use the network -marked so they can be skipped easily when we know the network -is not available. - -This is useful for example on SUSE and openSUSE's build servers. -When building the httpx packages (actually, any package in the -distribution) the network is disabled so we can assure -reproducible builds (among other benefits). With this mark, it's -easier to skip tests that can not succeed. ---- - setup.cfg | 1 + - tests/client/test_proxies.py | 2 ++ - tests/test_timeouts.py | 1 + - 3 files changed, 4 insertions(+) - -diff --git a/setup.cfg b/setup.cfg -index c860d819c..eb5451d96 100644 ---- a/setup.cfg -+++ b/setup.cfg -@@ -18,6 +18,7 @@ combine_as_imports = True - default:::uvicorn - markers = - copied_from(source, changes=None): mark test as copied from somewhere else, along with a description of changes made to accodomate e.g. our test setup -+ network: marks tests which require network connection - - [coverage:run] - omit = venv/*, httpx/_compat.py -diff --git a/tests/client/test_proxies.py b/tests/client/test_proxies.py -index 6ea4cbe40..2817d202b 100644 ---- a/tests/client/test_proxies.py -+++ b/tests/client/test_proxies.py -@@ -122,6 +122,7 @@ def test_transport_for_request(url, proxies, expected): - - - @pytest.mark.asyncio -+@pytest.mark.network - async def test_async_proxy_close(): - try: - client = httpx.AsyncClient(proxies={"https://": PROXY_URL}) -@@ -130,6 +131,7 @@ async def test_async_proxy_close(): - await client.aclose() - - -+@pytest.mark.network - def test_sync_proxy_close(): - try: - client = httpx.Client(proxies={"https://": PROXY_URL}) -diff --git a/tests/test_timeouts.py b/tests/test_timeouts.py -index 46a8bee8f..c7a665c3b 100644 ---- a/tests/test_timeouts.py -+++ b/tests/test_timeouts.py -@@ -23,6 +23,7 @@ async def test_write_timeout(server): - - - @pytest.mark.usefixtures("async_environment") -+@pytest.mark.network - async def test_connect_timeout(server): - timeout = httpx.Timeout(None, connect=1e-6) - diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/httpx-0.18.2.tar.gz b/httpx-0.18.2.tar.gz deleted file mode 100644 index 2ed9aba..0000000 --- a/httpx-0.18.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b2d56098724fbff3840a53a9e0e522867e05436cc8211aaed0b87f1120aa5bdc -size 1666756 diff --git a/httpx-0.22.0.tar.gz b/httpx-0.22.0.tar.gz new file mode 100644 index 0000000..62dada9 --- /dev/null +++ b/httpx-0.22.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6727a0c9a9bd762c051f546dd92682c1dbccd7c743e768e49bef53fb844a30d +size 2157682 diff --git a/python-httpx.changes b/python-httpx.changes index 5336ae6..69c6c4e 100644 --- a/python-httpx.changes +++ b/python-httpx.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Tue Feb 1 07:01:13 UTC 2022 - Steve Kowalik + +- Update to 0.22.0: + * Add support for `Client(allow_redirects=)`. (Pull #1790) + * Add automatic character set detection, when no `charset` is included in the response `Content-Type` header. (Pull #1791) + * Added the `httpx` command-line client. + * Response instances now include `.is_informational`, `.is_success`, `.is_redirect`, `.is_client_error`, and `.is_server_error` + properties for checking 1xx, 2xx, 3xx, 4xx, and 5xx response types. Note that the behaviour of `.is_redirect` is slightly different in that it now returns True for all 3xx responses, in order to allow for a consistent set of properties onto the different HTTP status code types. The `response.has_redirect_location` location may be used to determine responses with properly formed URL redirects. + * Support for [the SOCKS5 proxy protocol](https://www.python-httpx.org/advanced/#socks) via [the `socksio` package](https://github.com/sethmlarson/socksio). (#2034) + * Support for custom headers in multipart/form-data requests (#1936) + * Event hooks are now also called for any additional redirect or auth requests/responses. (Pull #1806) + * Strictly enforce that upload files must be opened in binary mode. (Pull #1736) + * Strictly enforce that client instances can only be opened and closed once, and cannot be re-opened. (Pull #1800) + * Drop `mode` argument from `httpx.Proxy(..., mode=...)`. (Pull #1795) + * The `allow_redirects` flag is now `follow_redirects` and defaults to `False`. + * The `raise_for_status()` method will now raise an exception for any responses + except those with 2xx status codes. Previously only 4xx and 5xx status codes + would result in an exception. + * The low-level transport API changes to the much simpler `response = transport.handle_request(request)`. + * The `client.send()` method no longer accepts a `timeout=...` argument, but the + `client.build_request()` does. This required by the signature change of the + Transport API. The request timeout configuration is now stored on the request + instance, as `request.extensions['timeout']`. + * `response.iter_bytes()` no longer raises a ValueError when called on a response with no content. (Pull #1827) + * The `'wsgi.error'` configuration now defaults to `sys.stderr`, and is corrected to be a `TextIO` interface, not a `BytesIO` interface. Additionally, the WSGITransport now accepts a `wsgi_error` configuration. (Pull #1828) + * Follow the WSGI spec by properly closing the iterable returned by the application. (Pull #1830) + * Don't perform unreliable close/warning on `__del__` with unclosed clients. (#2026) + * Fix `Headers.update(...)` to correctly handle repeated headers (#2038) + * Fix streaming uploads using `SyncByteStream` or `AsyncByteStream`. Regression in 0.21.2. (#2016) + * HTTP/2 support for tunnelled proxy cases. (#2009) + * Improved the speed of large file uploads. (#1948) + * The `response.url` property is now correctly annotated as `URL`, instead of `Optional[URL]`. (#1940) +- Inject multibuild to cut down a build loop. +- Remove patch 0001-Add-a-network-pytest-mark-for-tests-that-use-the-network.patch: + * Included upstream. + ------------------------------------------------------------------- Fri Jun 18 07:56:56 UTC 2021 - Antonio Larrosa diff --git a/python-httpx.spec b/python-httpx.spec index db125e8..beb2ab3 100644 --- a/python-httpx.spec +++ b/python-httpx.spec @@ -1,7 +1,7 @@ # -# spec file for package python-httpx +# spec file # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,43 +16,53 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} +%{?!python_module:%define python_module() python3-%{**}} +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif %define skip_python2 1 -%define skip_python36 1 -Name: python-httpx -Version: 0.18.2 +Name: python-httpx%{psuffix} +Version: 0.22.0 Release: 0 Summary: Python HTTP client with async support License: BSD-3-Clause -Group: Development/Languages/Python URL: https://github.com/encode/httpx Source: https://github.com/encode/httpx/archive/%{version}.tar.gz#/httpx-%{version}.tar.gz -# PATCH-FIX-UPSTREAM alarrosa@suse.com (gh#encode/httpx#1669) -Patch0: 0001-Add-a-network-pytest-mark-for-tests-that-use-the-network.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-brotlicffi Requires: python-certifi Requires: python-chardet >= 3.0 +Requires: python-charset-normalizer >= 2.0.6 Requires: python-h11 >= 0.8.0 Requires: python-h2 >= 3.0 Requires: python-hstspreload >= 2019.8.27 -Requires: python-httpcore >= 0.13.0 +Requires: python-httpcore >= 0.14.0 Requires: python-idna >= 2.0 Requires: python-rfc3986 >= 1.3 Requires: python-sniffio +Requires(post): update-alternatives +Requires(postun):update-alternatives BuildArch: noarch # SECTION test requirements +%if %{with test} BuildRequires: %{python_module anyio} BuildRequires: %{python_module async_generator} BuildRequires: %{python_module brotlicffi} BuildRequires: %{python_module certifi} BuildRequires: %{python_module chardet >= 3.0} +BuildRequires: %{python_module charset-normalizer >= 2.0.6} BuildRequires: %{python_module h11 >= 0.8.0} BuildRequires: %{python_module h2 >= 3.0} BuildRequires: %{python_module hstspreload >= 2019.8.27} -BuildRequires: %{python_module httpcore >= 0.13.0} +BuildRequires: %{python_module httpcore >= 0.14.0} +BuildRequires: %{python_module httpx} BuildRequires: %{python_module idna >= 2.0} BuildRequires: %{python_module pytest-asyncio} BuildRequires: %{python_module pytest-trio} @@ -63,6 +73,7 @@ BuildRequires: %{python_module trio} BuildRequires: %{python_module trustme} BuildRequires: %{python_module uvicorn} BuildRequires: %{python_module uvloop} +%endif # /SECTION %python_subpackages @@ -71,22 +82,35 @@ Python HTTP client with async support. %prep %setup -q -n httpx-%{version} -%patch0 -p1 rm setup.cfg %build %python_build %install +%if !%{with test} %python_install +%python_clone -a %{buildroot}%{_bindir}/httpx %python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif %check -%pytest -k 'not network' +%if %{with test} +%pytest -k 'not (network or socks or test_main or response_no_charset or test_text_decoder)' +%endif +%post +%python_install_alternative httpx + +%postun +%python_uninstall_alternative httpx + +%if !%{with test} %files %{python_files} %doc CHANGELOG.md README.md %license LICENSE.md +%python_alternative %{_bindir}/httpx %{python_sitelib}/httpx* +%endif %changelog