@@ -185,3 +185,140 @@ def test_objs_query_wb_user_id(client: WeaveClient):
185
185
res = client ._objects ()
186
186
assert len (res ) == 3
187
187
assert all (obj .wb_user_id == correct_id for obj in res )
188
+
189
+
190
+ def test_objs_query_deleted_interaction (client : WeaveClient ):
191
+ weave .publish ({"i" : 1 }, name = "obj_1" )
192
+ weave .publish ({"i" : 2 }, name = "obj_1" )
193
+ weave .publish ({"i" : 3 }, name = "obj_1" )
194
+
195
+ res = client .server .objs_query (
196
+ tsi .ObjQueryReq (
197
+ project_id = client ._project_id (),
198
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
199
+ )
200
+ )
201
+ assert len (res .objs ) == 3
202
+ assert all (obj .val ["i" ] in [1 , 2 , 3 ] for obj in res .objs )
203
+
204
+ res = client .server .obj_delete (
205
+ tsi .ObjDeleteReq (
206
+ project_id = client ._project_id (),
207
+ object_id = "obj_1" ,
208
+ digests = [res .objs [0 ].digest ],
209
+ )
210
+ )
211
+
212
+ assert res .num_deleted == 1
213
+
214
+ res = client .server .objs_query (
215
+ tsi .ObjQueryReq (
216
+ project_id = client ._project_id (),
217
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
218
+ )
219
+ )
220
+ assert len (res .objs ) == 2
221
+ assert all (obj .val ["i" ] in [2 , 3 ] for obj in res .objs )
222
+
223
+ # Delete the remaining objects
224
+ res = client .server .obj_delete (
225
+ tsi .ObjDeleteReq (
226
+ project_id = client ._project_id (),
227
+ object_id = "obj_1" ,
228
+ digests = [res .objs [0 ].digest , res .objs [1 ].digest ],
229
+ )
230
+ )
231
+ assert res .num_deleted == 2
232
+
233
+ res = client .server .objs_query (
234
+ tsi .ObjQueryReq (
235
+ project_id = client ._project_id (),
236
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
237
+ )
238
+ )
239
+ assert len (res .objs ) == 0
240
+
241
+
242
+ def test_objs_query_delete_and_recreate (client : WeaveClient ):
243
+ weave .publish ({"i" : 1 }, name = "obj_1" )
244
+ weave .publish ({"i" : 2 }, name = "obj_1" )
245
+ weave .publish ({"i" : 3 }, name = "obj_1" )
246
+
247
+ res = client .server .objs_query (
248
+ tsi .ObjQueryReq (
249
+ project_id = client ._project_id (),
250
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
251
+ )
252
+ )
253
+ assert len (res .objs ) == 3
254
+
255
+ original_created_at = res .objs [0 ].created_at
256
+
257
+ res = client .server .obj_delete (
258
+ tsi .ObjDeleteReq (
259
+ project_id = client ._project_id (),
260
+ object_id = "obj_1" ,
261
+ )
262
+ )
263
+ assert res .num_deleted == 3
264
+
265
+ weave .publish ({"i" : 1 }, name = "obj_1" )
266
+
267
+ res = client .server .objs_query (
268
+ tsi .ObjQueryReq (
269
+ project_id = client ._project_id (),
270
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
271
+ )
272
+ )
273
+ assert len (res .objs ) == 1
274
+ assert res .objs [0 ].val ["i" ] == 1
275
+ assert res .objs [0 ].created_at > original_created_at
276
+
277
+ weave .publish ({"i" : 2 }, name = "obj_1" )
278
+ weave .publish ({"i" : 3 }, name = "obj_1" )
279
+
280
+ res = client .server .objs_query (
281
+ tsi .ObjQueryReq (
282
+ project_id = client ._project_id (),
283
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
284
+ )
285
+ )
286
+ assert len (res .objs ) == 3
287
+
288
+ for i in range (3 ):
289
+ print ("res.objs[i].val" , res .objs [i ].val )
290
+ assert res .objs [i ].val ["i" ] == i + 1
291
+
292
+
293
+ def test_objs_query_delete_and_add_new_versions (client : WeaveClient ):
294
+ weave .publish ({"i" : 1 }, name = "obj_1" )
295
+ weave .publish ({"i" : 2 }, name = "obj_1" )
296
+ weave .publish ({"i" : 3 }, name = "obj_1" )
297
+
298
+ res = client .server .objs_query (
299
+ tsi .ObjQueryReq (
300
+ project_id = client ._project_id (),
301
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
302
+ )
303
+ )
304
+ assert len (res .objs ) == 3
305
+
306
+ res = client .server .obj_delete (
307
+ tsi .ObjDeleteReq (
308
+ project_id = client ._project_id (),
309
+ object_id = "obj_1" ,
310
+ )
311
+ )
312
+
313
+ weave .publish ({"i" : 4 }, name = "obj_1" )
314
+ weave .publish ({"i" : 5 }, name = "obj_1" )
315
+ weave .publish ({"i" : 6 }, name = "obj_1" )
316
+
317
+ res = client .server .objs_query (
318
+ tsi .ObjQueryReq (
319
+ project_id = client ._project_id (),
320
+ filter = tsi .ObjectVersionFilter (latest_only = False ),
321
+ )
322
+ )
323
+ assert len (res .objs ) == 3
324
+ assert all (obj .val ["i" ] in [4 , 5 , 6 ] for obj in res .objs )
0 commit comments