@@ -145,3 +145,111 @@ def test_global_key_with_whitespaces_validation(client, dataset, image_url):
145145 assert assign_errors_gks == set ([gk_1 , gk_2 , gk_3 ])
146146 assert assign_errors_msgs == set (
147147 ['Invalid global key' , 'Invalid global key' , 'Invalid global key' ])
148+
149+
150+ def test_get_data_rows_for_global_keys (client , dataset , image_url ):
151+ gk_1 = str (uuid .uuid4 ())
152+ gk_2 = str (uuid .uuid4 ())
153+
154+ dr_1 = dataset .create_data_row (row_data = image_url ,
155+ external_id = "hello" ,
156+ global_key = gk_1 )
157+ dr_2 = dataset .create_data_row (row_data = image_url ,
158+ external_id = "world" ,
159+ global_key = gk_2 )
160+
161+ res = client .get_data_rows_for_global_keys ([gk_1 ])
162+ assert res ['status' ] == "SUCCESS"
163+ assert res ['errors' ] == []
164+ assert res ['results' ] == [dr_1 ]
165+
166+ res = client .get_data_rows_for_global_keys ([gk_2 ])
167+ assert res ['status' ] == "SUCCESS"
168+ assert res ['errors' ] == []
169+ assert res ['results' ] == [dr_2 ]
170+
171+ res = client .get_data_rows_for_global_keys ([gk_1 , gk_2 ])
172+ assert res ['status' ] == "SUCCESS"
173+ assert res ['errors' ] == []
174+ assert res ['results' ] == [dr_1 , dr_2 ]
175+
176+
177+ def test_get_data_rows_for_invalid_global_keys (client , dataset , image_url ):
178+ gk_1 = str (uuid .uuid4 ())
179+ gk_2 = str (uuid .uuid4 ())
180+
181+ dr_1 = dataset .create_data_row (row_data = image_url , external_id = "hello" )
182+ dr_2 = dataset .create_data_row (row_data = image_url ,
183+ external_id = "world" ,
184+ global_key = gk_2 )
185+
186+ res = client .get_data_rows_for_global_keys ([gk_1 ])
187+ assert res ['status' ] == "FAILURE"
188+ assert len (res ['errors' ]) == 1
189+ assert res ['errors' ][0 ]['error' ] == "Data Row not found"
190+ assert res ['errors' ][0 ]['global_key' ] == gk_1
191+
192+ res = client .get_data_rows_for_global_keys ([gk_1 , gk_2 ])
193+ assert res ['status' ] == "PARTIAL SUCCESS"
194+
195+ assert len (res ['errors' ]) == 1
196+ assert len (res ['results' ]) == 1
197+
198+ assert res ['errors' ][0 ]['error' ] == "Data Row not found"
199+ assert res ['errors' ][0 ]['global_key' ] == gk_1
200+
201+ assert res ['results' ][0 ] == dr_2
202+
203+
204+ def test_get_data_row_ids_for_global_keys (client , dataset , image_url ):
205+ gk_1 = str (uuid .uuid4 ())
206+ gk_2 = str (uuid .uuid4 ())
207+
208+ dr_1 = dataset .create_data_row (row_data = image_url ,
209+ external_id = "hello" ,
210+ global_key = gk_1 )
211+ dr_2 = dataset .create_data_row (row_data = image_url ,
212+ external_id = "world" ,
213+ global_key = gk_2 )
214+
215+ res = client .get_data_row_ids_for_global_keys ([gk_1 ])
216+ assert res ['status' ] == "SUCCESS"
217+ assert res ['errors' ] == []
218+ assert res ['results' ] == [dr_1 .uid ]
219+
220+ res = client .get_data_row_ids_for_global_keys ([gk_2 ])
221+ assert res ['status' ] == "SUCCESS"
222+ assert res ['errors' ] == []
223+ assert res ['results' ] == [dr_2 .uid ]
224+
225+ res = client .get_data_row_ids_for_global_keys ([gk_1 , gk_2 ])
226+ assert res ['status' ] == "SUCCESS"
227+ assert res ['errors' ] == []
228+ assert res ['results' ] == [dr_1 .uid , dr_2 .uid ]
229+
230+
231+ def test_get_data_row_ids_for_invalid_global_keys (client , dataset , image_url ):
232+ gk_1 = str (uuid .uuid4 ())
233+ gk_2 = str (uuid .uuid4 ())
234+
235+ dr_1 = dataset .create_data_row (row_data = image_url , external_id = "hello" )
236+ dr_2 = dataset .create_data_row (row_data = image_url ,
237+ external_id = "world" ,
238+ global_key = gk_2 )
239+
240+ res = client .get_data_row_ids_for_global_keys ([gk_1 ])
241+ assert res ['status' ] == "FAILURE"
242+ assert len (res ['errors' ]) == 1
243+ assert res ['errors' ][0 ]['error' ] == "Data Row not found"
244+ assert res ['errors' ][0 ]['global_key' ] == gk_1
245+
246+ res = client .get_data_row_ids_for_global_keys ([gk_1 , gk_2 ])
247+ assert res ['status' ] == "PARTIAL SUCCESS"
248+
249+ assert len (res ['errors' ]) == 1
250+ assert len (res ['results' ]) == 1
251+
252+ assert res ['errors' ][0 ]['error' ] == "Data Row not found"
253+ assert res ['errors' ][0 ]['global_key' ] == gk_1
254+
255+ assert res ['results' ][0 ] == dr_2 .uid
0 commit comments