22from pathlib import Path
33from unittest .mock import ANY , MagicMock , Mock , patch , mock_open
44
5+ import wasi_test_runner .test_suite as ts
56import wasi_test_runner .test_case as tc
67import wasi_test_runner .test_suite_runner as tsr
7- from wasi_test_runner .runtime_adapter import RuntimeVersion
8+ from wasi_test_runner .runtime_adapter import RuntimeMeta
89
910
1011def get_mock_open () -> Mock :
@@ -26,6 +27,7 @@ def open_mock(filename: str, *_args: Any, **_kwargs: Any) -> Any:
2627# pylint: disable-msg=too-many-locals
2728@patch ("builtins.open" , get_mock_open ())
2829@patch ("os.path.exists" , Mock (return_value = True ))
30+ @patch ("pathlib.Path.exists" , Mock (return_value = True ))
2931def test_runner_end_to_end () -> None :
3032 test_suite_dir = "my-path"
3133 test_suite_name = "test-suite"
@@ -52,7 +54,14 @@ def test_runner_end_to_end() -> None:
5254
5355 runtime_name = "rt1"
5456 runtime_version_str = "4.2"
55- runtime_version = RuntimeVersion (runtime_name , runtime_version_str )
57+ the_runtime_wasi_version = tc .WasiVersion .WASM32_WASIP1
58+ runtime_wasi_versions = frozenset ([the_runtime_wasi_version ])
59+ runtime_meta = RuntimeMeta (runtime_name , runtime_version_str ,
60+ runtime_wasi_versions )
61+
62+ expected_test_suite_meta = ts .TestSuiteMeta (test_suite_name ,
63+ the_runtime_wasi_version ,
64+ runtime_meta )
5665
5766 expected_argv = [runtime_name , "<test>" ]
5867 expected_test_cases = [
@@ -64,7 +73,7 @@ def test_runner_end_to_end() -> None:
6473
6574 runtime = Mock ()
6675 runtime .get_name .return_value = runtime_name
67- runtime .get_version .return_value = runtime_version
76+ runtime .get_meta .return_value = runtime_meta
6877 runtime .run_test .side_effect = outputs
6978 runtime .compute_argv .return_value = expected_argv
7079
@@ -87,7 +96,7 @@ def test_runner_end_to_end() -> None:
8796 filters ) # type: ignore
8897
8998 # Assert manifest was read correctly
90- assert suite .name == test_suite_name
99+ assert suite .meta == expected_test_suite_meta
91100
92101 # Assert test cases
93102 assert suite .test_count == 3
@@ -98,16 +107,16 @@ def test_runner_end_to_end() -> None:
98107 for test_path , config in zip (test_paths , expected_config ):
99108 expected_dirs = [(Path (test_suite_dir ) / d , d ) for d in config .dirs ]
100109 runtime .compute_argv .assert_any_call (
101- str (test_path ), config .args , config .env , expected_dirs
110+ str (test_path ), config .args , config .env , expected_dirs ,
111+ "wasm32-wasip1"
102112 )
103113 runtime .run_test .assert_called_with (expected_argv )
104114
105115 # Assert reporters calls
106116 for reporter in reporters :
107117 assert reporter .report_test .call_count == 3
108118 for test_case in expected_test_cases :
109- reporter .report_test .assert_any_call (test_suite_name ,
110- runtime_version ,
119+ reporter .report_test .assert_any_call (expected_test_suite_meta ,
111120 test_case )
112121
113122 # Assert validators calls
@@ -120,12 +129,12 @@ def test_runner_end_to_end() -> None:
120129 for filt in filters :
121130 assert filt .should_skip .call_count == 3
122131 for test_case in expected_test_cases :
123- filt .should_skip .assert_any_call (runtime_version , suite . name ,
132+ filt .should_skip .assert_any_call (expected_test_suite_meta ,
124133 test_case .name )
125134
126135
127136@patch ("os.path.exists" , Mock (return_value = False ))
128137def test_runner_should_use_path_for_name_if_manifest_does_not_exist () -> None :
129138 suite = tsr .run_tests_from_test_suite ("my-path" , Mock (), [], [], [])
130139
131- assert suite .name == "my-path"
140+ assert suite .meta . name == "my-path"
0 commit comments