@@ -19,6 +19,7 @@ def __init__(
1919 create_response : Index | None = None ,
2020 update_response : Index | None = None ,
2121 deploy_response : PipelineValidationResult | None = None ,
22+ list_exception : Exception | None = None ,
2223 get_exception : Exception | None = None ,
2324 create_exception : Exception | None = None ,
2425 update_exception : Exception | None = None ,
@@ -29,12 +30,15 @@ def __init__(
2930 self ._create_response = create_response
3031 self ._update_response = update_response
3132 self ._deploy_response = deploy_response
33+ self ._list_exception = list_exception
3234 self ._get_exception = get_exception
3335 self ._create_exception = create_exception
3436 self ._update_exception = update_exception
3537 self ._deploy_exception = deploy_exception
3638
3739 async def list (self , limit : int = 10 , page_number : int = 1 ) -> IndexList :
40+ if self ._list_exception :
41+ raise self ._list_exception
3842 if self ._list_response is not None :
3943 return self ._list_response
4044 return IndexList (data = [], has_more = False , total = 0 )
@@ -118,17 +122,18 @@ def create_test_index(
118122
119123
120124@pytest .mark .asyncio
121- async def test_list_indexes_returns_formatted_string_when_no_indexes () -> None :
125+ async def test_list_indexes_without_indexes () -> None :
122126 resource = FakeIndexResource (list_response = IndexList (data = [], has_more = False , total = 0 ))
123127 client = FakeClient (resource )
124128
125129 result = await list_indexes (client = client , workspace = "test" )
126130
127- assert result == "No indexes found."
131+ assert isinstance (result , IndexList )
132+ assert len (result .data ) == 0
128133
129134
130135@pytest .mark .asyncio
131- async def test_list_indexes_returns_formatted_string_with_indexes () -> None :
136+ async def test_list_indexes_returns_indexes () -> None :
132137 index1 = create_test_index (name = "index1" , description = "First index" )
133138 index2 = create_test_index (name = "index2" , description = "Second index" )
134139
@@ -137,25 +142,33 @@ async def test_list_indexes_returns_formatted_string_with_indexes() -> None:
137142
138143 result = await list_indexes (client = client , workspace = "test" )
139144
140- assert "index1" in result
141- assert "index2" in result
142- assert "First index" in result
143- assert "Second index" in result
144- assert "idx_123" in result
145+ assert isinstance (result , IndexList )
146+ assert len (result .data ) == 2
147+ assert result .data [0 ].name == index1 .name
148+ assert result .data [1 ].name == index2 .name
145149
146150
147151@pytest .mark .asyncio
148- async def test_get_index_returns_formatted_string () -> None :
152+ async def test_list_indexes_returns_string_on_non_existant_workspace () -> None :
153+ resource = FakeIndexResource (list_exception = ResourceNotFoundError (message = "Resource not found." ))
154+ client = FakeClient (resource )
155+
156+ result = await list_indexes (client = client , workspace = "test" )
157+
158+ assert isinstance (result , str )
159+ assert result == "Error listing indexes. Error: Resource not found. (404)"
160+
161+
162+ @pytest .mark .asyncio
163+ async def test_get_index_returns_index () -> None :
149164 index = create_test_index (name = "my_index" , description = "My special index" )
150165 resource = FakeIndexResource (get_response = index )
151166 client = FakeClient (resource )
152167
153168 result = await get_index (client = client , workspace = "test" , index_name = "my_index" )
154169
155- assert "my_index" in result
156- assert "config: value" in result
157- assert "idx_123" in result
158- assert "My special index" in result
170+ assert isinstance (result , Index )
171+ assert result .name == "my_index"
159172
160173
161174@pytest .mark .asyncio
@@ -169,7 +182,7 @@ async def test_get_index_returns_error_message_when_index_not_found() -> None:
169182
170183
171184@pytest .mark .asyncio
172- async def test_create_index_returns_success_message () -> None :
185+ async def test_create_index_returns_success_message_and_index () -> None :
173186 created_index = create_test_index (name = "new_index" )
174187 resource = FakeIndexResource (create_response = created_index )
175188 client = FakeClient (resource )
@@ -182,7 +195,11 @@ async def test_create_index_returns_success_message() -> None:
182195 description = "New index description" ,
183196 )
184197
185- assert "Index 'new_index' created successfully." == result
198+ assert isinstance (result , dict )
199+ assert isinstance (result .get ("message" ), str )
200+ index = result .get ("index" )
201+ assert isinstance (index , Index )
202+ assert index .name == "new_index"
186203
187204
188205@pytest .mark .parametrize (
@@ -225,7 +242,12 @@ async def test_update_index_returns_success_message() -> None:
225242 yaml_configuration = "new_config" ,
226243 )
227244
228- assert "Index 'test_index' updated successfully." == result
245+ assert isinstance (result , dict )
246+ assert isinstance (result .get ("message" ), str )
247+
248+ index = result .get ("index" )
249+ assert isinstance (index , Index )
250+ assert index .name == "new_test_index"
229251
230252
231253@pytest .mark .asyncio
@@ -355,11 +377,8 @@ async def test_deploy_index_returns_validation_errors() -> None:
355377
356378 result = await deploy_index (client = client , workspace = "test" , index_name = "test_index" )
357379
358- assert "The provided pipeline configuration is invalid" in result
359- assert "invalid_config" in result
360- assert "Index configuration is invalid" in result
361- assert "missing_dependency" in result
362- assert "Required dependency not found" in result
380+ assert isinstance (result , PipelineValidationResult )
381+ assert result .errors == validation_errors
363382
364383
365384@pytest .mark .parametrize (
0 commit comments