@@ -307,3 +307,81 @@ def test_with_custom_types():
307307
308308 result = _test_with_custom_types (b = CustomClass (2 ), a = CustomClass (3 )).execute ()
309309 assert result
310+
311+
312+ def test_upgrade_test_with_migration ():
313+ @test (name = "Named test" )
314+ def my_named_test (is_pass : bool ):
315+ return is_pass
316+
317+ suite = Suite ().add_test (my_named_test (True ), "True" ).add_test (my_named_test (False ), "False" )
318+
319+ assert len (suite .tests ) == 2
320+ assert suite .tests [0 ].test_id == "True"
321+ assert suite .tests [0 ].giskard_test .meta .uuid == my_named_test .meta .uuid
322+ assert suite .tests [0 ].provided_inputs == {"is_pass" : True }
323+ assert suite .tests [1 ].test_id == "False"
324+ assert suite .tests [1 ].giskard_test .meta .uuid == my_named_test .meta .uuid
325+ assert suite .tests [1 ].provided_inputs == {"is_pass" : False }
326+
327+ @test (name = "Named test" )
328+ def my_named_test_v2 (passed : bool ):
329+ return passed
330+
331+ suite .upgrade_test (my_named_test_v2 , lambda params : {"passed" : params ["is_pass" ]})
332+
333+ assert len (suite .tests ) == 2
334+ assert suite .tests [0 ].test_id == "True"
335+ assert suite .tests [0 ].giskard_test .meta .uuid == my_named_test_v2 .meta .uuid
336+ assert suite .tests [0 ].provided_inputs == {"passed" : True }
337+ assert suite .tests [1 ].test_id == "False"
338+ assert suite .tests [1 ].giskard_test .meta .uuid == my_named_test_v2 .meta .uuid
339+ assert suite .tests [1 ].provided_inputs == {"passed" : False }
340+
341+
342+ def test_upgrade_test_without ():
343+ @test (name = "Named test" )
344+ def my_named_test (is_pass : bool ):
345+ return is_pass
346+
347+ suite = Suite ().add_test (my_named_test (True ), "True" )
348+
349+ assert len (suite .tests ) == 1
350+ assert suite .tests [0 ].test_id == "True"
351+ assert suite .tests [0 ].giskard_test .meta .uuid == my_named_test .meta .uuid
352+ assert suite .tests [0 ].provided_inputs == {"is_pass" : True }
353+
354+ @test (name = "Named test" )
355+ def my_named_test_v2 (passed : bool ):
356+ return passed
357+
358+ suite .upgrade_test (my_named_test_v2 )
359+
360+ assert len (suite .tests ) == 1
361+ assert suite .tests [0 ].test_id == "True"
362+ assert suite .tests [0 ].giskard_test .meta .uuid == my_named_test_v2 .meta .uuid
363+ assert suite .tests [0 ].provided_inputs == {"is_pass" : True }
364+
365+
366+ def test_upgrade_test_not_matching ():
367+ @test (name = "Named test" )
368+ def my_named_test (is_pass : bool ):
369+ return is_pass
370+
371+ suite = Suite ().add_test (my_named_test (True ), "True" )
372+
373+ assert len (suite .tests ) == 1
374+ assert suite .tests [0 ].test_id == "True"
375+ assert suite .tests [0 ].giskard_test .meta .uuid == my_named_test .meta .uuid
376+ assert suite .tests [0 ].provided_inputs == {"is_pass" : True }
377+
378+ @test (name = "Named test V2" )
379+ def my_named_test_v2 (passed : bool ):
380+ return passed
381+
382+ suite .upgrade_test (my_named_test_v2 )
383+
384+ assert len (suite .tests ) == 1
385+ assert suite .tests [0 ].test_id == "True"
386+ assert suite .tests [0 ].giskard_test .meta .uuid == my_named_test .meta .uuid
387+ assert suite .tests [0 ].provided_inputs == {"is_pass" : True }
0 commit comments