Sync from SUSE:SLFO:Main python-elasticsearch revision ad52053225ce9d0316fc55c85f213e55

This commit is contained in:
2025-03-28 16:37:47 +01:00
parent a27c9a877e
commit ea8adb6114
5 changed files with 34 additions and 199 deletions

View File

@@ -1,193 +0,0 @@
From 740005db4dcd732015606d86eff29eb15a0193b2 Mon Sep 17 00:00:00 2001
From: Daniel Garcia Moreno <daniel.garcia@suse.com>
Date: Wed, 8 Jan 2025 08:50:23 +0100
Subject: [PATCH] Make pyarrow dependency optional for tests
---
.../test_client/test_deprecated_options.py | 40 ++++++++-------
.../test_client/test_serializers.py | 49 ++++++++-----------
test_elasticsearch/test_serializer.py | 9 +++-
3 files changed, 48 insertions(+), 50 deletions(-)
diff --git a/test_elasticsearch/test_client/test_deprecated_options.py b/test_elasticsearch/test_client/test_deprecated_options.py
index 810e75cf..ea797ce8 100644
--- a/test_elasticsearch/test_client/test_deprecated_options.py
+++ b/test_elasticsearch/test_client/test_deprecated_options.py
@@ -22,6 +22,24 @@ import pytest
from elasticsearch import Elasticsearch, JsonSerializer
+EXPECTED_SERIALIZERS = {
+ "application/vnd.mapbox-vector-tile",
+ "application/x-ndjson",
+ "application/json",
+ "text/*",
+ "application/vnd.elasticsearch+json",
+ "application/vnd.elasticsearch+x-ndjson",
+}
+
+
+try:
+ import pyarrow as pa
+ EXPECTED_SERIALIZERS.add("application/vnd.apache.arrow.stream")
+except ImportError:
+ pa = None
+
+
+
def test_sniff_on_connection_fail():
with warnings.catch_warnings(record=True) as w:
client = Elasticsearch("http://localhost:9200", sniff_on_connection_fail=True)
@@ -129,15 +147,7 @@ def test_serializer_and_serializers():
client.transport.serializers.get_serializer("application/json"),
CustomSerializer,
)
- assert set(client.transport.serializers.serializers.keys()) == {
- "application/vnd.mapbox-vector-tile",
- "application/x-ndjson",
- "application/json",
- "text/*",
- "application/vnd.apache.arrow.stream",
- "application/vnd.elasticsearch+json",
- "application/vnd.elasticsearch+x-ndjson",
- }
+ assert set(client.transport.serializers.serializers.keys()) == EXPECTED_SERIALIZERS
client = Elasticsearch(
"http://localhost:9200",
@@ -150,13 +160,5 @@ def test_serializer_and_serializers():
client.transport.serializers.get_serializer("application/json"),
CustomSerializer,
)
- assert set(client.transport.serializers.serializers.keys()) == {
- "application/vnd.mapbox-vector-tile",
- "application/x-ndjson",
- "application/json",
- "text/*",
- "application/vnd.apache.arrow.stream",
- "application/vnd.elasticsearch+json",
- "application/vnd.elasticsearch+x-ndjson",
- "application/cbor",
- }
+ expected = EXPECTED_SERIALIZERS | {"application/cbor"}
+ assert set(client.transport.serializers.serializers.keys()) == expected
diff --git a/test_elasticsearch/test_client/test_serializers.py b/test_elasticsearch/test_client/test_serializers.py
index 9d13386e..4b18212d 100644
--- a/test_elasticsearch/test_client/test_serializers.py
+++ b/test_elasticsearch/test_client/test_serializers.py
@@ -21,6 +21,23 @@ from elasticsearch import Elasticsearch
from test_elasticsearch.test_cases import DummyTransportTestCase
+EXPECTED_SERIALIZERS = {
+ "application/json",
+ "text/*",
+ "application/x-ndjson",
+ "application/vnd.mapbox-vector-tile",
+ "application/vnd.elasticsearch+json",
+ "application/vnd.elasticsearch+x-ndjson",
+}
+
+
+try:
+ import pyarrow as pa
+ EXPECTED_SERIALIZERS.add("application/vnd.apache.arrow.stream")
+except ImportError:
+ pa = None
+
+
class TestSerializers(DummyTransportTestCase):
def test_compat_mode_on_by_default(self):
calls = self.client.transport.calls
@@ -90,16 +107,8 @@ class TestSerializers(DummyTransportTestCase):
"https://localhost:9200", serializers={f"application/{mime_subtype}": ser}
)
serializers = client.transport.serializers.serializers
- assert set(serializers.keys()) == {
- "application/json",
- "text/*",
- "application/x-ndjson",
- "application/vnd.apache.arrow.stream",
- "application/vnd.mapbox-vector-tile",
- "application/vnd.elasticsearch+json",
- "application/vnd.elasticsearch+x-ndjson",
- }
+ assert set(serializers.keys()) == EXPECTED_SERIALIZERS
assert serializers[f"application/{mime_subtype}"] is ser
assert serializers[f"application/vnd.elasticsearch+{mime_subtype}"] is ser
@@ -118,16 +127,7 @@ class TestSerializers(DummyTransportTestCase):
},
)
serializers = client.transport.serializers.serializers
- assert set(serializers.keys()) == {
- "application/json",
- "text/*",
- "application/x-ndjson",
- "application/vnd.apache.arrow.stream",
- "application/vnd.mapbox-vector-tile",
- "application/vnd.elasticsearch+json",
- "application/vnd.elasticsearch+x-ndjson",
- }
-
+ assert set(serializers.keys()) == EXPECTED_SERIALIZERS
assert serializers[f"application/{mime_subtype}"] is ser1
assert serializers[f"application/vnd.elasticsearch+{mime_subtype}"] is ser2
@@ -138,15 +138,6 @@ class TestSerializers(DummyTransportTestCase):
ser = CustomSerializer()
client = Elasticsearch("https://localhost:9200", serializer=ser)
serializers = client.transport.serializers.serializers
- assert set(serializers.keys()) == {
- "application/json",
- "text/*",
- "application/x-ndjson",
- "application/vnd.apache.arrow.stream",
- "application/vnd.mapbox-vector-tile",
- "application/vnd.elasticsearch+json",
- "application/vnd.elasticsearch+x-ndjson",
- }
-
+ assert set(serializers.keys()) == EXPECTED_SERIALIZERS
assert serializers["application/json"] is ser
assert serializers["application/vnd.elasticsearch+json"] is ser
diff --git a/test_elasticsearch/test_serializer.py b/test_elasticsearch/test_serializer.py
index 02723e8f..313029ba 100644
--- a/test_elasticsearch/test_serializer.py
+++ b/test_elasticsearch/test_serializer.py
@@ -19,9 +19,14 @@ import uuid
from datetime import datetime
from decimal import Decimal
-import pyarrow as pa
import pytest
+try:
+ import pyarrow as pa
+ from elasticsearch.serializer import PyArrowSerializer
+except ImportError:
+ pa = None
+
try:
import numpy as np
import pandas as pd
@@ -35,7 +40,6 @@ from elasticsearch.exceptions import SerializationError
from elasticsearch.serializer import (
JSONSerializer,
OrjsonSerializer,
- PyArrowSerializer,
TextSerializer,
)
@@ -163,6 +167,7 @@ def test_serializes_pandas_category(json_serializer):
assert b'{"d":[1,2,3]}' == json_serializer.dumps({"d": cat})
+@pytest.mark.skipif(pa is None, reason="Test requires pyarrow to be available")
def test_pyarrow_loads():
data = [
pa.array([1, 2, 3, 4]),
--
2.47.0

View File

@@ -1,3 +1,33 @@
-------------------------------------------------------------------
Tue Feb 4 09:04:37 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 8.17.1
* Make pyarrow dependency optional for tests (#2733, contributed by @danigm)
* Update APIs:
- Add Simulate ingest API
- Add Get data stream lifecycle stats API
- Add Update inference API
- Add Create or update, Get and Delete IP geolocation
database configuration APIs
- Add Bulk update API keys
- Add Get and Update Security index settings APIs
- Add OpenID Connect prepare authentication, OpenID
Connect authenticate and OpenID Connect logout APIs
- Add Delegate PKI authentication API
- Add Repository analysis API
- Add Render Search Application Query API
- Add Find field structure and Find messages structure APIs
- Add Get Watcher index settings and Update Watcher index settings APIs
- Add experimental Check in and Claim connector sync job APIs
- Add experimental Set connector sync job errors and Set connector sync job stats APIs
- Add experimental Update connector features APIs
- Add experimental Post Event to an Analytics Collection API
- Add timeout and master_timeout to Snapshot lifecycle management (SLM) APIs
- Add allow_partial_search_results to SQL search API
- Add throttle_period_in_millis to Create or update watch API
- Fix query parameters for CAT APIs
- Drop 0001-Make-pyarrow-dependency-optional-for-tests.patch, merged upstream
-------------------------------------------------------------------
Wed Jan 8 08:59:00 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>

View File

@@ -20,15 +20,13 @@
Name: python-elasticsearch
# DO NOT UPDATE until the compatible version of
# python-elasticsearch-dsl is available
Version: 8.17.0
Version: 8.17.1
Release: 0
Summary: Python client for Elasticsearch
License: Apache-2.0
Group: Development/Languages/Python
URL: https://github.com/elastic/elasticsearch-py
Source: https://github.com/elastic/elasticsearch-py/archive/refs/tags/v%{version}.tar.gz
# PATCH-FIX-UPSTREAM 0001-Make-pyarrow-dependency-optional-for-tests.patch gh#elastic/elasticsearch-py#2733
Patch1: 0001-Make-pyarrow-dependency-optional-for-tests.patch
BuildRequires: %{python_module certifi}
BuildRequires: %{python_module elastic-transport}
BuildRequires: %{python_module hatchling}

BIN
v8.17.0.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
v8.17.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.