From 09291839a36cb72be9eeba6f1d54ff4ecc9550d38acc12676e684895027aa352 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 13 Dec 2024 10:45:12 +0000 Subject: [PATCH] Accepting request 1230637 from home:bnavigator:branches:devel:languages:python - Update test runs: pytest 8 is supported, httpx 0.28 creates problems OBS-URL: https://build.opensuse.org/request/show/1230637 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-elastic-transport?expand=0&rev=29 --- .gitattributes | 23 +++++ .gitignore | 1 + elastic-transport-python-8.13.1.tar.gz | 3 + elastic-transport-python-8.15.1.tar.gz | 3 + python-elastic-transport.changes | 112 +++++++++++++++++++++++++ python-elastic-transport.spec | 88 +++++++++++++++++++ remove-mock.patch | 59 +++++++++++++ 7 files changed, 289 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 elastic-transport-python-8.13.1.tar.gz create mode 100644 elastic-transport-python-8.15.1.tar.gz create mode 100644 python-elastic-transport.changes create mode 100644 python-elastic-transport.spec create mode 100644 remove-mock.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/elastic-transport-python-8.13.1.tar.gz b/elastic-transport-python-8.13.1.tar.gz new file mode 100644 index 0000000..a9316db --- /dev/null +++ b/elastic-transport-python-8.13.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b634a4c760076b142567696675ec153fa85b9e8a7e66f838e6505bde827940f +size 76370 diff --git a/elastic-transport-python-8.15.1.tar.gz b/elastic-transport-python-8.15.1.tar.gz new file mode 100644 index 0000000..c380ea9 --- /dev/null +++ b/elastic-transport-python-8.15.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bc0aa1b94cc0761efeceac5f0ba1d7dd19bf8b5571d863ca49c6b2f212db75c +size 76741 diff --git a/python-elastic-transport.changes b/python-elastic-transport.changes new file mode 100644 index 0000000..1e4022d --- /dev/null +++ b/python-elastic-transport.changes @@ -0,0 +1,112 @@ +------------------------------------------------------------------- +Thu Dec 12 15:56:05 UTC 2024 - Ben Greiner + +- Update test runs: pytest 8 is supported, httpx 0.28 creates + problems + +------------------------------------------------------------------- +Thu Dec 5 10:45:51 UTC 2024 - Daniel Garcia + +- drop remove-mock.patch, it's part of upstream now. +- Update to 8.15.1 + * Add explicit Python 3.13 support (#189) +- 8.15.0: + * Removed call to raise_for_status() when using HttpxAsyncHttpNode + to prevent exceptions being raised for 404 responses (#182) + * Documented response classes (#175) + * Dropped support for Python 3.7 (#179) + +------------------------------------------------------------------- +Fri Jun 21 07:55:47 UTC 2024 - Steve Kowalik + +- Skip some failing tests with pytest 8.x. + +------------------------------------------------------------------- +Thu Jun 6 09:45:48 UTC 2024 - Markéta Machová + +- Update to 8.13.1 + * Fixed requests 2.32 compatibility + * Fixed TypeError when two nodes are declared dead at the same time + * Added TransportApiResponse +- Drop merged requests232.patch + +------------------------------------------------------------------- +Mon May 27 04:24:39 UTC 2024 - Steve Kowalik + +- Switch to pyproject macros. +- Require pytest 8 or greater. +- Add patch remove-mock.patch: + * Remove requirement on mock, now as a patch, rather than sed. + +------------------------------------------------------------------- +Thu May 23 08:17:35 UTC 2024 - Markéta Machová + +- Add requests232.patch to fix compatibility with new requests + +------------------------------------------------------------------- +Fri May 17 13:29:03 UTC 2024 - Markéta Machová + +- update to 8.13.0 + * Support the HTTPX client with asyncio + * Added optional orjson serializer support + +------------------------------------------------------------------- +Sat Jan 20 14:03:15 UTC 2024 - Dirk Müller + +- update to 8.12.0: + * Fix basic auth built from percent-encoded URLs + +------------------------------------------------------------------- +Thu Dec 14 10:21:02 UTC 2023 - Dirk Müller + +- update to 8.11.0: + * Always set default HTTPS port to 443 + * Drop support for Python 3.6 + * Include tests in sdist + * Fix `__iter__` return type to Iterator + +------------------------------------------------------------------- +Sat Dec 2 17:07:21 UTC 2023 - Dirk Müller + +- update to 8.10.0: + * Support urllib3 2.x in addition to urllib3 1.26.x (#121) + * Add 409 to `NOT_DEAD_NODE_HTTP_STATUSES` (#120) + * Fixed an issue where a large number of consecutive failures + to connect to a node would raise an `OverflowError`. + * Fixed an issue to ensure that `ApiResponse` can be pickled. + +------------------------------------------------------------------- +Tue May 9 12:00:12 UTC 2023 - Daniel Garcia + +- Update python-urllib3 minimum requirement to build with latest + python-urllib3 + +------------------------------------------------------------------- +Fri Apr 21 12:24:34 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:41:03 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Mon Dec 5 12:09:29 UTC 2022 - Daniel Garcia + +- Disable broken test with latest urllib3 release + gh#elastic/elastic-transport-python#96 + +------------------------------------------------------------------- +Tue Sep 27 19:15:33 UTC 2022 - Yogalakshmi Arunachalam + +- Update to 8.4.0 + * Added method for clients to use default ports for URL scheme. + +------------------------------------------------------------------- +Thu Aug 18 16:43:36 UTC 2022 - Ben Greiner + +- Initial specfile for v8.3.3 +- This library was lifted from elasticsearch-py and then + transformed to be used across all Elastic services rather than + only Elasticsearch. diff --git a/python-elastic-transport.spec b/python-elastic-transport.spec new file mode 100644 index 0000000..63ddc7b --- /dev/null +++ b/python-elastic-transport.spec @@ -0,0 +1,88 @@ +# +# spec file for package python-elastic-transport +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-elastic-transport +Version: 8.15.1 +Release: 0 +Summary: Transport classes and utilities shared among Python Elastic client libraries +License: Apache-2.0 +URL: https://github.com/elastic/elastic-transport-python +Source: https://github.com/elastic/elastic-transport-python/archive/refs/tags/v%{version}.tar.gz#/elastic-transport-python-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-certifi +Requires: python-urllib3 +BuildArch: noarch +# SECTION test requirements +BuildRequires: %{python_module aiohttp} +BuildRequires: %{python_module certifi} +BuildRequires: %{python_module httpx} +BuildRequires: %{python_module opentelemetry-api} +BuildRequires: %{python_module opentelemetry-sdk} +BuildRequires: %{python_module orjson} +BuildRequires: %{python_module pytest-asyncio} +BuildRequires: %{python_module pytest-httpserver} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module requests} +BuildRequires: %{python_module respx} +BuildRequires: %{python_module trustme} +BuildRequires: %{python_module urllib3} +# /SECTION +%python_subpackages + +%description +Transport classes and utilities shared among Python Elastic client libraries + +%prep +%autosetup -p1 -n elastic-transport-python-%{version} +sed -i '/addopts/d' setup.cfg + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +# these tests fail without proper name resolution or online connection to httpbin.org and badssl.com +donttest="(test_http_aiohttp and not TestAiohttpHttpNode)" +donttest="$donttest or test_tls_versions" +donttest="$donttest or test_assert_fingerprint_in_cert_chain" +donttest="$donttest or (test_ssl_assert_fingerprint and httpx)" +# Fails in 3.12 with DeprecationWarning +donttest="$donttest or test_simple_request" +# Mocking error with httpx 0.28 / patched respx +donttest="$donttest or (TestHttpxAsyncNode and not Creation)" +# Flaky test +donttest="$donttest or test_decimal_serialization[OrjsonSerializer]" +%pytest -W ignore::DeprecationWarning -k "not ($donttest)" + +%files %{python_files} +%doc CHANGELOG.md README.md +%license LICENSE +%{python_sitelib}/elastic_transport +%{python_sitelib}/elastic_transport-%{version}.dist-info + +%changelog diff --git a/remove-mock.patch b/remove-mock.patch new file mode 100644 index 0000000..213fcc9 --- /dev/null +++ b/remove-mock.patch @@ -0,0 +1,59 @@ +From 20d207e59f17f9539af12626e2f832f9ad094025 Mon Sep 17 00:00:00 2001 +From: Steve Kowalik +Date: Mon, 20 May 2024 11:51:43 +1000 +Subject: [PATCH] Remove last uses of mock + +The node tests still relied on the external mock library for mocking, +whereas other tests have transitioned to unittest.mock. Since we support +Python 3.7 and greater, we can remove that requirement and pull them in +line too. +--- + setup.py | 1 - + tests/node/test_http_requests.py | 2 +- + tests/node/test_http_urllib3.py | 2 +- + 3 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index c145012..17370a7 100644 +--- a/setup.py ++++ b/setup.py +@@ -63,7 +63,6 @@ + "pytest-asyncio", + "pytest-httpserver", + "trustme", +- "mock", + "requests", + "aiohttp", + "httpx", +diff --git a/tests/node/test_http_requests.py b/tests/node/test_http_requests.py +index 2ff7bc0..3a99854 100644 +--- a/tests/node/test_http_requests.py ++++ b/tests/node/test_http_requests.py +@@ -18,10 +18,10 @@ + import gzip + import ssl + import warnings ++from unittest.mock import Mock, patch + + import pytest + import requests +-from mock import Mock, patch + from requests.auth import HTTPBasicAuth + + from elastic_transport import NodeConfig, RequestsHttpNode +diff --git a/tests/node/test_http_urllib3.py b/tests/node/test_http_urllib3.py +index fad11e7..25bd920 100644 +--- a/tests/node/test_http_urllib3.py ++++ b/tests/node/test_http_urllib3.py +@@ -19,10 +19,10 @@ + import re + import ssl + import warnings ++from unittest.mock import Mock, patch + + import pytest + import urllib3 +-from mock import Mock, patch + from urllib3.response import HTTPHeaderDict + + from elastic_transport import NodeConfig, TransportError, Urllib3HttpNode