Skip to content

Commit b764cdf

Browse files
authored
fix: serialize WeaviateDocumentStore grpc_port and grpc_secure (#3453)
Co-authored-by: ly-wang19 <ly-wang19@users.noreply.github.com>
1 parent bbfe964 commit b764cdf

5 files changed

Lines changed: 43 additions & 0 deletions

File tree

integrations/weaviate/src/haystack_integrations/document_stores/weaviate/document_store.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,8 @@ def to_dict(self) -> dict[str, Any]:
325325
return default_to_dict(
326326
self,
327327
url=self._url,
328+
grpc_port=self._grpc_port,
329+
grpc_secure=self._grpc_secure,
328330
collection_settings=self._collection_settings,
329331
auth_client_secret=self._auth_client_secret.to_dict() if self._auth_client_secret else None,
330332
additional_headers=self._additional_headers,

integrations/weaviate/tests/test_bm25_retriever.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ def test_to_dict(_mock_weaviate):
4040
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
4141
"init_parameters": {
4242
"url": None,
43+
"grpc_port": 50051,
44+
"grpc_secure": False,
4345
"collection_settings": {
4446
"class": "Default",
4547
"invertedIndexConfig": {"indexNullState": True},
@@ -74,6 +76,8 @@ def test_from_dict(_mock_weaviate):
7476
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
7577
"init_parameters": {
7678
"url": None,
79+
"grpc_port": 50051,
80+
"grpc_secure": False,
7781
"collection_settings": {
7882
"class": "Default",
7983
"invertedIndexConfig": {"indexNullState": True},
@@ -111,6 +115,8 @@ def test_from_dict_no_filter_policy(_mock_weaviate):
111115
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
112116
"init_parameters": {
113117
"url": None,
118+
"grpc_port": 50051,
119+
"grpc_secure": False,
114120
"collection_settings": {
115121
"class": "Default",
116122
"invertedIndexConfig": {"indexNullState": True},

integrations/weaviate/tests/test_document_store.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,8 @@ def test_to_dict(self, _mock_weaviate, monkeypatch):
355355
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
356356
"init_parameters": {
357357
"url": "http://localhost:8080",
358+
"grpc_port": 50051,
359+
"grpc_secure": False,
358360
"collection_settings": {
359361
"class": "Default",
360362
"invertedIndexConfig": {"indexNullState": True},
@@ -397,6 +399,25 @@ def test_to_dict(self, _mock_weaviate, monkeypatch):
397399
},
398400
}
399401

402+
@patch("haystack_integrations.document_stores.weaviate.document_store.weaviate")
403+
def test_to_dict_and_from_dict_preserves_grpc_settings(self, _mock_weaviate):
404+
"""`grpc_port`/`grpc_secure` configure the gRPC connection and must
405+
survive a to_dict/from_dict round-trip; otherwise a reloaded store
406+
silently falls back to the default gRPC port/security."""
407+
document_store = WeaviateDocumentStore(
408+
url="http://localhost:8080",
409+
grpc_port=50052,
410+
grpc_secure=True,
411+
)
412+
413+
serialized = document_store.to_dict()
414+
assert serialized["init_parameters"]["grpc_port"] == 50052
415+
assert serialized["init_parameters"]["grpc_secure"] is True
416+
417+
restored = WeaviateDocumentStore.from_dict(serialized)
418+
assert restored._grpc_port == 50052
419+
assert restored._grpc_secure is True
420+
400421
@patch("haystack_integrations.document_stores.weaviate.document_store.weaviate")
401422
def test_from_dict(self, _mock_weaviate, monkeypatch):
402423
monkeypatch.setenv("WEAVIATE_API_KEY", "my_api_key")

integrations/weaviate/tests/test_embedding_retriever.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ def test_to_dict(_mock_weaviate):
5050
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
5151
"init_parameters": {
5252
"url": None,
53+
"grpc_port": 50051,
54+
"grpc_secure": False,
5355
"collection_settings": {
5456
"class": "Default",
5557
"invertedIndexConfig": {"indexNullState": True},
@@ -86,6 +88,8 @@ def test_from_dict(_mock_weaviate):
8688
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
8789
"init_parameters": {
8890
"url": None,
91+
"grpc_port": 50051,
92+
"grpc_secure": False,
8993
"collection_settings": {
9094
"class": "Default",
9195
"invertedIndexConfig": {"indexNullState": True},
@@ -127,6 +131,8 @@ def test_from_dict_no_filter_policy(_mock_weaviate):
127131
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
128132
"init_parameters": {
129133
"url": None,
134+
"grpc_port": 50051,
135+
"grpc_secure": False,
130136
"collection_settings": {
131137
"class": "Default",
132138
"invertedIndexConfig": {"indexNullState": True},

integrations/weaviate/tests/test_hybrid_retriever.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ def test_to_dict(_mock_weaviate):
6363
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
6464
"init_parameters": {
6565
"url": None,
66+
"grpc_port": 50051,
67+
"grpc_secure": False,
6668
"collection_settings": {
6769
"class": "Default",
6870
"invertedIndexConfig": {"indexNullState": True},
@@ -119,6 +121,8 @@ def test_from_dict(_mock_weaviate):
119121
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
120122
"init_parameters": {
121123
"url": None,
124+
"grpc_port": 50051,
125+
"grpc_secure": False,
122126
"collection_settings": {
123127
"class": "Default",
124128
"invertedIndexConfig": {"indexNullState": True},
@@ -162,6 +166,8 @@ def test_from_dict_with_parameters(_mock_weaviate):
162166
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
163167
"init_parameters": {
164168
"url": None,
169+
"grpc_port": 50051,
170+
"grpc_secure": False,
165171
"collection_settings": {
166172
"class": "Default",
167173
"invertedIndexConfig": {"indexNullState": True},
@@ -300,6 +306,8 @@ def test_from_dict_no_filter_policy(_mock_weaviate):
300306
"type": "haystack_integrations.document_stores.weaviate.document_store.WeaviateDocumentStore",
301307
"init_parameters": {
302308
"url": None,
309+
"grpc_port": 50051,
310+
"grpc_secure": False,
303311
"collection_settings": {
304312
"class": "Default",
305313
"invertedIndexConfig": {"indexNullState": True},

0 commit comments

Comments
 (0)