@@ -381,8 +381,87 @@ def test_delete_model(self):
381
381
Model .objects .get (pk = created_model .pk )
382
382
383
383
expected_path = os .path .join (
384
- settings .MODEL_DIR , str (created_model .model_id )
384
+ settings .MODEL_DIR , str (created_model .model_id ), str ( created_model . revision )
385
385
)
386
386
self .assertFalse (os .path .exists (expected_path ), "Model file should be deleted" )
387
387
388
388
self .assertEqual (Change .objects .filter (model = created_model ).count (), 0 )
389
+
390
+ def test_delete_model_revision (self ):
391
+ model_file = self ._create_dummy_file ()
392
+ options = {
393
+ "title" : "Model to Delete" ,
394
+ "description" : "This model will be deleted." ,
395
+ "tags" : {"delete" : "yes" },
396
+ "categories" : ["DeleteCat" ],
397
+ "latitude" : 20.0 ,
398
+ "longitude" : 30.0 ,
399
+ "source" : None ,
400
+ "license" : 8 ,
401
+ "author" : self .user ,
402
+ "translation" : [0 , 0 , 0 ],
403
+ "rotation" : 0 ,
404
+ "scale" : 1 ,
405
+ "revision" : False ,
406
+ }
407
+
408
+ created_model = database .upload (model_file , options )
409
+ self .assertIsNotNone (created_model )
410
+
411
+ revision_options = {
412
+ "model_id" : created_model .model_id ,
413
+ "author" : self .user ,
414
+ "revision" : True ,
415
+ }
416
+ model_rev1 = database .upload (model_file , revision_options )
417
+ self .assertIsNotNone (model_rev1 )
418
+ model_rev2 = database .upload (model_file , revision_options )
419
+ self .assertIsNotNone (model_rev2 )
420
+
421
+ delete_result = database .delete (model_rev2 .model_id , model_rev2 .revision )
422
+ self .assertTrue (delete_result , "Delete should return True on success" )
423
+
424
+ with self .assertRaises (Model .DoesNotExist ):
425
+ Model .objects .get (pk = model_rev2 .pk )
426
+
427
+ expected_path = os .path .join (
428
+ settings .MODEL_DIR , str (model_rev2 .model_id ), str (model_rev2 .revision )
429
+ )
430
+ self .assertFalse (os .path .exists (expected_path ), "Model file for revision 2 should be deleted" )
431
+
432
+ self .assertEqual (Change .objects .filter (model = model_rev2 ).count (), 0 )
433
+
434
+ model_rev1 .refresh_from_db ()
435
+ self .assertTrue (model_rev1 .latest )
436
+ created_model .refresh_from_db ()
437
+ self .assertFalse (created_model .latest )
438
+
439
+ delete_result = database .delete (model_rev1 .model_id , model_rev1 .revision )
440
+ self .assertTrue (delete_result , "Delete should return True on success" )
441
+
442
+ with self .assertRaises (Model .DoesNotExist ):
443
+ Model .objects .get (pk = model_rev1 .pk )
444
+
445
+ expected_path = os .path .join (
446
+ settings .MODEL_DIR , str (model_rev1 .model_id ), str (model_rev1 .revision )
447
+ )
448
+ self .assertFalse (os .path .exists (expected_path ), "Model file for revision 1 should be deleted" )
449
+
450
+ self .assertEqual (Change .objects .filter (model = model_rev1 ).count (), 0 )
451
+
452
+ created_model .refresh_from_db ()
453
+ self .assertTrue (created_model .latest )
454
+
455
+ delete_result = database .delete (created_model .model_id , created_model .revision )
456
+ self .assertTrue (delete_result , "Delete should return True on success" )
457
+
458
+ with self .assertRaises (Model .DoesNotExist ):
459
+ Model .objects .get (pk = created_model .pk )
460
+
461
+ expected_path = os .path .join (
462
+ settings .MODEL_DIR , str (created_model .model_id ), str (created_model .revision )
463
+ )
464
+ self .assertFalse (os .path .exists (expected_path ), "Model file for revision 1 should be deleted" )
465
+
466
+ self .assertEqual (Change .objects .filter (model = created_model ).count (), 0 )
467
+ self .assertEqual (Model .objects .filter (model_id = created_model .model_id ).count (), 0 )
0 commit comments