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>
This commit is contained in:
Vinicius Monego 2022-01-11 16:25:18 +00:00 committed by Hartmut Goebel
parent 9ee6d9cb17
commit 5d28f089ef
No known key found for this signature in database
GPG key ID: 634A8DFFD3F631DF
3 changed files with 131 additions and 0 deletions

View file

@ -1720,6 +1720,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/python-mypy-12332.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-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \

View file

@ -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")

View file

@ -7478,3 +7478,60 @@ (define-public python-wadllib
(description "The @code{wadllib} Python library allows navigating HTTP
resources using Web Application Description Language (WADL) files as guides.")
(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)))