test_harness_self_test.mojo (2521B)
1 from std.os.path import exists 2 from std.testing import TestSuite, assert_equal, assert_true 3 4 from safe_tempdir import SafeTempDir 5 6 7 def test_safe_tempdir_propagates_assertion_failure() raises: 8 var entered_body = False 9 var caught = False 10 try: 11 with SafeTempDir() as temp_dir: 12 _ = temp_dir 13 entered_body = True 14 assert_true(False) 15 except: 16 caught = True 17 assert_true(entered_body) 18 assert_true(caught) 19 20 21 def test_safe_tempdir_propagates_generic_error_with_exact_identity() raises: 22 var entered_body = False 23 var caught = False 24 var message = String("") 25 try: 26 with SafeTempDir() as temp_dir: 27 _ = temp_dir 28 entered_body = True 29 raise Error("intentional generic harness error") 30 except e: 31 caught = True 32 message = String(e) 33 assert_true(entered_body) 34 assert_true(caught) 35 assert_equal(message, "intentional generic harness error") 36 37 38 def test_safe_tempdir_nested_contexts_are_distinct_and_cleaned() raises: 39 var outer_path = String("") 40 var inner_path = String("") 41 with SafeTempDir() as outer: 42 outer_path = outer 43 with SafeTempDir() as inner: 44 inner_path = inner 45 assert_true(exists(inner_path)) 46 assert_true(exists(outer_path)) 47 assert_true(outer_path != inner_path) 48 assert_true(not exists(outer_path)) 49 assert_true(not exists(inner_path)) 50 51 52 def test_safe_tempdir_nested_error_propagates_and_cleans_up() raises: 53 var outer_path = String("") 54 var inner_path = String("") 55 var caught = False 56 try: 57 with SafeTempDir() as outer: 58 outer_path = outer 59 with SafeTempDir() as inner: 60 inner_path = inner 61 raise Error("nested harness error") 62 except e: 63 caught = True 64 assert_equal(String(e), "nested harness error") 65 assert_true(caught) 66 assert_true(not exists(outer_path)) 67 assert_true(not exists(inner_path)) 68 69 70 def test_safe_tempdir_cleans_up_on_exception() raises: 71 var path = String("") 72 var entered_body = False 73 var caught = False 74 try: 75 with SafeTempDir() as temp_dir: 76 path = temp_dir 77 entered_body = True 78 raise Error("intentional cleanup harness error") 79 except: 80 caught = True 81 assert_true(entered_body) 82 assert_true(caught) 83 assert_true(not exists(path)) 84 85 86 def main() raises: 87 TestSuite.discover_tests[__functions_in_module()]().run()