@@ -111,6 +111,70 @@ def create_rag_corpus_mock_pinecone():
111
111
yield create_rag_corpus_mock_pinecone
112
112
113
113
114
+ @pytest .fixture
115
+ def update_rag_corpus_mock_weaviate ():
116
+ with mock .patch .object (
117
+ VertexRagDataServiceClient ,
118
+ "update_rag_corpus" ,
119
+ ) as update_rag_corpus_mock_weaviate :
120
+ update_rag_corpus_lro_mock = mock .Mock (ga_operation .Operation )
121
+ update_rag_corpus_lro_mock .done .return_value = True
122
+ update_rag_corpus_lro_mock .result .return_value = (
123
+ tc .TEST_GAPIC_RAG_CORPUS_WEAVIATE
124
+ )
125
+ update_rag_corpus_mock_weaviate .return_value = update_rag_corpus_lro_mock
126
+ yield update_rag_corpus_mock_weaviate
127
+
128
+
129
+ @pytest .fixture
130
+ def update_rag_corpus_mock_vertex_feature_store ():
131
+ with mock .patch .object (
132
+ VertexRagDataServiceClient ,
133
+ "update_rag_corpus" ,
134
+ ) as update_rag_corpus_mock_vertex_feature_store :
135
+ update_rag_corpus_lro_mock = mock .Mock (ga_operation .Operation )
136
+ update_rag_corpus_lro_mock .done .return_value = True
137
+ update_rag_corpus_lro_mock .result .return_value = (
138
+ tc .TEST_GAPIC_RAG_CORPUS_VERTEX_FEATURE_STORE
139
+ )
140
+ update_rag_corpus_mock_vertex_feature_store .return_value = (
141
+ update_rag_corpus_lro_mock
142
+ )
143
+ yield update_rag_corpus_mock_vertex_feature_store
144
+
145
+
146
+ @pytest .fixture
147
+ def update_rag_corpus_mock_vertex_vector_search ():
148
+ with mock .patch .object (
149
+ VertexRagDataServiceClient ,
150
+ "update_rag_corpus" ,
151
+ ) as update_rag_corpus_mock_vertex_vector_search :
152
+ update_rag_corpus_lro_mock = mock .Mock (ga_operation .Operation )
153
+ update_rag_corpus_lro_mock .done .return_value = True
154
+ update_rag_corpus_lro_mock .result .return_value = (
155
+ tc .TEST_GAPIC_RAG_CORPUS_VERTEX_VECTOR_SEARCH
156
+ )
157
+ update_rag_corpus_mock_vertex_vector_search .return_value = (
158
+ update_rag_corpus_lro_mock
159
+ )
160
+ yield update_rag_corpus_mock_vertex_vector_search
161
+
162
+
163
+ @pytest .fixture
164
+ def update_rag_corpus_mock_pinecone ():
165
+ with mock .patch .object (
166
+ VertexRagDataServiceClient ,
167
+ "update_rag_corpus" ,
168
+ ) as update_rag_corpus_mock_pinecone :
169
+ update_rag_corpus_lro_mock = mock .Mock (ga_operation .Operation )
170
+ update_rag_corpus_lro_mock .done .return_value = True
171
+ update_rag_corpus_lro_mock .result .return_value = (
172
+ tc .TEST_GAPIC_RAG_CORPUS_PINECONE
173
+ )
174
+ update_rag_corpus_mock_pinecone .return_value = update_rag_corpus_lro_mock
175
+ yield update_rag_corpus_mock_pinecone
176
+
177
+
114
178
@pytest .fixture
115
179
def list_rag_corpora_pager_mock ():
116
180
with mock .patch .object (
@@ -298,6 +362,83 @@ def test_create_corpus_failure(self):
298
362
rag .create_corpus (display_name = tc .TEST_CORPUS_DISPLAY_NAME )
299
363
e .match ("Failed in RagCorpus creation due to" )
300
364
365
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_weaviate" )
366
+ def test_update_corpus_weaviate_success (self ):
367
+ rag_corpus = rag .update_corpus (
368
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
369
+ display_name = tc .TEST_CORPUS_DISPLAY_NAME ,
370
+ vector_db = tc .TEST_WEAVIATE_CONFIG ,
371
+ )
372
+
373
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_WEAVIATE )
374
+
375
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_weaviate" )
376
+ def test_update_corpus_weaviate_no_display_name_success (self ):
377
+ rag_corpus = rag .update_corpus (
378
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
379
+ vector_db = tc .TEST_WEAVIATE_CONFIG ,
380
+ )
381
+
382
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_WEAVIATE )
383
+
384
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_weaviate" )
385
+ def test_update_corpus_weaviate_with_description_success (self ):
386
+ rag_corpus = rag .update_corpus (
387
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
388
+ description = tc .TEST_CORPUS_DISCRIPTION ,
389
+ vector_db = tc .TEST_WEAVIATE_CONFIG ,
390
+ )
391
+
392
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_WEAVIATE )
393
+
394
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_weaviate" )
395
+ def test_update_corpus_weaviate_with_description_and_display_name_success (self ):
396
+ rag_corpus = rag .update_corpus (
397
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
398
+ description = tc .TEST_CORPUS_DISCRIPTION ,
399
+ display_name = tc .TEST_CORPUS_DISPLAY_NAME ,
400
+ vector_db = tc .TEST_WEAVIATE_CONFIG ,
401
+ )
402
+
403
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_WEAVIATE )
404
+
405
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_vertex_feature_store" )
406
+ def test_update_corpus_vertex_feature_store_success (self ):
407
+ rag_corpus = rag .update_corpus (
408
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
409
+ display_name = tc .TEST_CORPUS_DISPLAY_NAME ,
410
+ vector_db = tc .TEST_VERTEX_FEATURE_STORE_CONFIG ,
411
+ )
412
+
413
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_VERTEX_FEATURE_STORE )
414
+
415
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_vertex_vector_search" )
416
+ def test_update_corpus_vertex_vector_search_success (self ):
417
+ rag_corpus = rag .update_corpus (
418
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
419
+ display_name = tc .TEST_CORPUS_DISPLAY_NAME ,
420
+ vector_db = tc .TEST_VERTEX_VECTOR_SEARCH_CONFIG ,
421
+ )
422
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_VERTEX_VECTOR_SEARCH )
423
+
424
+ @pytest .mark .usefixtures ("update_rag_corpus_mock_pinecone" )
425
+ def test_update_corpus_pinecone_success (self ):
426
+ rag_corpus = rag .update_corpus (
427
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
428
+ display_name = tc .TEST_CORPUS_DISPLAY_NAME ,
429
+ vector_db = tc .TEST_PINECONE_CONFIG ,
430
+ )
431
+ rag_corpus_eq (rag_corpus , tc .TEST_RAG_CORPUS_PINECONE )
432
+
433
+ @pytest .mark .usefixtures ("rag_data_client_mock_exception" )
434
+ def test_update_corpus_failure (self ):
435
+ with pytest .raises (RuntimeError ) as e :
436
+ rag .update_corpus (
437
+ corpus_name = tc .TEST_RAG_CORPUS_RESOURCE_NAME ,
438
+ display_name = tc .TEST_CORPUS_DISPLAY_NAME ,
439
+ )
440
+ e .match ("Failed in RagCorpus update due to" )
441
+
301
442
@pytest .mark .usefixtures ("rag_data_client_mock" )
302
443
def test_get_corpus_success (self ):
303
444
rag_corpus = rag .get_corpus (tc .TEST_RAG_CORPUS_RESOURCE_NAME )
0 commit comments