forked from pool/python-httpx
- Update to 0.22.0:
* Add support for `Client(allow_redirects=<bool>)`. (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) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-httpx?expand=0&rev=6
This commit is contained in:
parent
4e5ef9722c
commit
a48e72919e
@ -1,64 +0,0 @@
|
|||||||
From 55b8ee87b0e57f3dda924e3d01ee8eaa39c4aa81 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Antonio Larrosa <antonio.larrosa@gmail.com>
|
|
||||||
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)
|
|
||||||
|
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>test</package>
|
||||||
|
</multibuild>
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b2d56098724fbff3840a53a9e0e522867e05436cc8211aaed0b87f1120aa5bdc
|
|
||||||
size 1666756
|
|
3
httpx-0.22.0.tar.gz
Normal file
3
httpx-0.22.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d6727a0c9a9bd762c051f546dd92682c1dbccd7c743e768e49bef53fb844a30d
|
||||||
|
size 2157682
|
@ -1,3 +1,40 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 1 07:01:13 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 0.22.0:
|
||||||
|
* Add support for `Client(allow_redirects=<bool>)`. (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 <alarrosa@suse.com>
|
Fri Jun 18 07:56:56 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
|
||||||
|
@ -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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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_python2 1
|
||||||
%define skip_python36 1
|
Name: python-httpx%{psuffix}
|
||||||
Name: python-httpx
|
Version: 0.22.0
|
||||||
Version: 0.18.2
|
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Python HTTP client with async support
|
Summary: Python HTTP client with async support
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: Development/Languages/Python
|
|
||||||
URL: https://github.com/encode/httpx
|
URL: https://github.com/encode/httpx
|
||||||
Source: https://github.com/encode/httpx/archive/%{version}.tar.gz#/httpx-%{version}.tar.gz
|
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: %{python_module setuptools}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
Requires: python-brotlicffi
|
Requires: python-brotlicffi
|
||||||
Requires: python-certifi
|
Requires: python-certifi
|
||||||
Requires: python-chardet >= 3.0
|
Requires: python-chardet >= 3.0
|
||||||
|
Requires: python-charset-normalizer >= 2.0.6
|
||||||
Requires: python-h11 >= 0.8.0
|
Requires: python-h11 >= 0.8.0
|
||||||
Requires: python-h2 >= 3.0
|
Requires: python-h2 >= 3.0
|
||||||
Requires: python-hstspreload >= 2019.8.27
|
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-idna >= 2.0
|
||||||
Requires: python-rfc3986 >= 1.3
|
Requires: python-rfc3986 >= 1.3
|
||||||
Requires: python-sniffio
|
Requires: python-sniffio
|
||||||
|
Requires(post): update-alternatives
|
||||||
|
Requires(postun):update-alternatives
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
# SECTION test requirements
|
# SECTION test requirements
|
||||||
|
%if %{with test}
|
||||||
BuildRequires: %{python_module anyio}
|
BuildRequires: %{python_module anyio}
|
||||||
BuildRequires: %{python_module async_generator}
|
BuildRequires: %{python_module async_generator}
|
||||||
BuildRequires: %{python_module brotlicffi}
|
BuildRequires: %{python_module brotlicffi}
|
||||||
BuildRequires: %{python_module certifi}
|
BuildRequires: %{python_module certifi}
|
||||||
BuildRequires: %{python_module chardet >= 3.0}
|
BuildRequires: %{python_module chardet >= 3.0}
|
||||||
|
BuildRequires: %{python_module charset-normalizer >= 2.0.6}
|
||||||
BuildRequires: %{python_module h11 >= 0.8.0}
|
BuildRequires: %{python_module h11 >= 0.8.0}
|
||||||
BuildRequires: %{python_module h2 >= 3.0}
|
BuildRequires: %{python_module h2 >= 3.0}
|
||||||
BuildRequires: %{python_module hstspreload >= 2019.8.27}
|
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 idna >= 2.0}
|
||||||
BuildRequires: %{python_module pytest-asyncio}
|
BuildRequires: %{python_module pytest-asyncio}
|
||||||
BuildRequires: %{python_module pytest-trio}
|
BuildRequires: %{python_module pytest-trio}
|
||||||
@ -63,6 +73,7 @@ BuildRequires: %{python_module trio}
|
|||||||
BuildRequires: %{python_module trustme}
|
BuildRequires: %{python_module trustme}
|
||||||
BuildRequires: %{python_module uvicorn}
|
BuildRequires: %{python_module uvicorn}
|
||||||
BuildRequires: %{python_module uvloop}
|
BuildRequires: %{python_module uvloop}
|
||||||
|
%endif
|
||||||
# /SECTION
|
# /SECTION
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
@ -71,22 +82,35 @@ Python HTTP client with async support.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n httpx-%{version}
|
%setup -q -n httpx-%{version}
|
||||||
%patch0 -p1
|
|
||||||
rm setup.cfg
|
rm setup.cfg
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%python_build
|
%python_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
%if !%{with test}
|
||||||
%python_install
|
%python_install
|
||||||
|
%python_clone -a %{buildroot}%{_bindir}/httpx
|
||||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
%endif
|
||||||
|
|
||||||
%check
|
%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}
|
%files %{python_files}
|
||||||
%doc CHANGELOG.md README.md
|
%doc CHANGELOG.md README.md
|
||||||
%license LICENSE.md
|
%license LICENSE.md
|
||||||
|
%python_alternative %{_bindir}/httpx
|
||||||
%{python_sitelib}/httpx*
|
%{python_sitelib}/httpx*
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
x
Reference in New Issue
Block a user