gnu: Add python-zeep.
* gnu/packages/python-web.scm (python-zeep): New variable. * gnu/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com>
parent
9ee6d9cb17
commit
5d28f089ef
|
@ -1720,6 +1720,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/python-werkzeug-tests.patch \
|
%D%/packages/patches/python-werkzeug-tests.patch \
|
||||||
%D%/packages/patches/python-mypy-12332.patch \
|
%D%/packages/patches/python-mypy-12332.patch \
|
||||||
%D%/packages/patches/python-mypy-use-sys-path.patch \
|
%D%/packages/patches/python-mypy-use-sys-path.patch \
|
||||||
|
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
|
||||||
%D%/packages/patches/qemu-build-info-manual.patch \
|
%D%/packages/patches/qemu-build-info-manual.patch \
|
||||||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||||
%D%/packages/patches/qemu-glibc-2.30.patch \
|
%D%/packages/patches/qemu-glibc-2.30.patch \
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
From 2907848185adcb4e6d8c093db6c617c64cb8c8bf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Georg Sauthoff <mail@gms.tf>
|
||||||
|
Date: Sat, 5 Feb 2022 14:42:10 +0100
|
||||||
|
Subject: [PATCH] Use current pytest_httpx add_response keyword
|
||||||
|
|
||||||
|
The new text keyword was introduced in pytest_httpx 0.14, deprecated
|
||||||
|
in 0.14 and 0.17 and removed in 0.18.
|
||||||
|
|
||||||
|
Thus, an appropriate constraint to that dependency is added.
|
||||||
|
|
||||||
|
FWIW, this fixes the test cases on the upcoming Fedora 36 release.
|
||||||
|
|
||||||
|
See also:
|
||||||
|
- https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md#0180---2022-01-17
|
||||||
|
- https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md#0140---2021-10-22
|
||||||
|
---
|
||||||
|
setup.py | 2 +-
|
||||||
|
tests/test_async_transport.py | 8 ++++----
|
||||||
|
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 4cf9073b..58a5c24f 100755
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
"freezegun==0.3.15",
|
||||||
|
"pretend==1.0.9",
|
||||||
|
"pytest-cov==2.8.1",
|
||||||
|
- "pytest-httpx",
|
||||||
|
+ "pytest-httpx>=0.14",
|
||||||
|
"pytest-asyncio",
|
||||||
|
"pytest==6.2.5",
|
||||||
|
"requests_mock>=0.7.0",
|
||||||
|
diff --git a/tests/test_async_transport.py b/tests/test_async_transport.py
|
||||||
|
index f5e8d1b0..ee215265 100644
|
||||||
|
--- a/tests/test_async_transport.py
|
||||||
|
+++ b/tests/test_async_transport.py
|
||||||
|
@@ -19,7 +19,7 @@ def test_load(httpx_mock):
|
||||||
|
cache = stub(get=lambda url: None, add=lambda url, content: None)
|
||||||
|
transport = AsyncTransport(cache=cache)
|
||||||
|
|
||||||
|
- httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x")
|
||||||
|
+ httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", text="x")
|
||||||
|
result = transport.load("http://tests.python-zeep.org/test.xml")
|
||||||
|
assert result == b"x"
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ def test_load_cache(httpx_mock):
|
||||||
|
cache = InMemoryCache()
|
||||||
|
transport = AsyncTransport(cache=cache)
|
||||||
|
|
||||||
|
- httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x")
|
||||||
|
+ httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", text="x")
|
||||||
|
result = transport.load("http://tests.python-zeep.org/test.xml")
|
||||||
|
assert result == b"x"
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ async def test_post(httpx_mock: HTTPXMock):
|
||||||
|
|
||||||
|
envelope = etree.Element("Envelope")
|
||||||
|
|
||||||
|
- httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x")
|
||||||
|
+ httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", text="x")
|
||||||
|
result = await transport.post_xml(
|
||||||
|
"http://tests.python-zeep.org/test.xml", envelope=envelope, headers={}
|
||||||
|
)
|
||||||
|
@@ -67,7 +67,7 @@ async def test_http_error(httpx_mock: HTTPXMock):
|
||||||
|
transport = AsyncTransport()
|
||||||
|
|
||||||
|
httpx_mock.add_response(
|
||||||
|
- url="http://tests.python-zeep.org/test.xml", data="x", status_code=500
|
||||||
|
+ url="http://tests.python-zeep.org/test.xml", text="x", status_code=500
|
||||||
|
)
|
||||||
|
with pytest.raises(exceptions.TransportError) as exc:
|
||||||
|
transport.load("http://tests.python-zeep.org/test.xml")
|
|
@ -7478,3 +7478,60 @@ metadata from HTML markup. Currently, extruct supports:
|
||||||
(description "The @code{wadllib} Python library allows navigating HTTP
|
(description "The @code{wadllib} Python library allows navigating HTTP
|
||||||
resources using Web Application Description Language (WADL) files as guides.")
|
resources using Web Application Description Language (WADL) files as guides.")
|
||||||
(license license:lgpl3)))
|
(license license:lgpl3)))
|
||||||
|
|
||||||
|
(define-public python-zeep
|
||||||
|
(package
|
||||||
|
(name "python-zeep")
|
||||||
|
(version "4.1.0")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "zeep" version))
|
||||||
|
(patches
|
||||||
|
(search-patches "python-zeep-Fix-pytest_httpx-test-cases.patch"))
|
||||||
|
(sha256
|
||||||
|
(base32 "1ranr4hkjd2kbbhxa3is1qlgkankj3sml5gla6bqs0kbvpmg4rsq"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key tests? #:allow-other-keys)
|
||||||
|
(when tests?
|
||||||
|
(setenv "HOME" (getcwd)) ; one test requires write access
|
||||||
|
(invoke "pytest" "-vv")))))))
|
||||||
|
(propagated-inputs
|
||||||
|
(list python-attrs
|
||||||
|
python-cached-property
|
||||||
|
python-isodate
|
||||||
|
python-lxml
|
||||||
|
python-platformdirs
|
||||||
|
python-pytz
|
||||||
|
python-requests
|
||||||
|
python-requests-file
|
||||||
|
python-requests-toolbelt))
|
||||||
|
(native-inputs
|
||||||
|
(list python-aiohttp
|
||||||
|
python-aioresponses
|
||||||
|
python-freezegun
|
||||||
|
python-mock
|
||||||
|
python-pretend
|
||||||
|
python-pytest
|
||||||
|
python-pytest-asyncio
|
||||||
|
python-pytest-cov
|
||||||
|
python-pytest-httpx
|
||||||
|
python-requests-mock))
|
||||||
|
(home-page "https://docs.python-zeep.org/en/stable/")
|
||||||
|
(synopsis "Python SOAP client based on lxml / requests")
|
||||||
|
(description "Zeep is a Python SOAP client. Highlights:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Build on top of @code{lxml} and @code{requests}.
|
||||||
|
@item Support for Soap 1.1, Soap 1.2 and HTTP bindings.
|
||||||
|
@item Support for WS-Addressing headers.
|
||||||
|
@item Support for WSSE (UserNameToken / x.509 signing).
|
||||||
|
@item Support for @code{asyncio} via @code{httpx}.
|
||||||
|
@item Experimental support for XOP messages.
|
||||||
|
@end itemize")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
|
Reference in New Issue