Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 61b7422

Browse files
committedFeb 9, 2024··
Add comprehensive tests for integ test suites opensearch
Signed-off-by: Zelin Hao <zelinhao@amazon.com>
1 parent 33ccaba commit 61b7422

File tree

1 file changed

+64
-9
lines changed

1 file changed

+64
-9
lines changed
 

‎tests/tests_test_workflow/test_integ_workflow/integ_test/test_integ_test_suite_opensearch.py

+64-9
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ def setUp(self) -> None:
3535
self.work_dir = Path("test_dir")
3636

3737
@patch("os.path.exists", return_value=True)
38+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.IntegTestSuiteOpenSearch.multi_execute_integtest_sh")
3839
@patch("test_workflow.integ_test.integ_test_suite_opensearch.Topology")
3940
@patch("test_workflow.test_recorder.test_recorder.TestRecorder")
40-
def test_execute_with_multiple_test_configs(self, mock_test_recorder: Mock, mock_topology: Mock, *mock: Any) -> None:
41+
def test_execute_with_multiple_test_configs(self, mock_test_recorder: Mock, mock_topology: Mock, mock_multi_execute_integtest_sh: Mock, *mock: Any) -> None:
4142
test_config, component = self.__get_test_config_and_bundle_component("job-scheduler")
4243
dependency_installer = MagicMock()
4344
integ_test_suite = IntegTestSuiteOpenSearch(
@@ -50,8 +51,6 @@ def test_execute_with_multiple_test_configs(self, mock_test_recorder: Mock, mock
5051
mock_test_recorder
5152
)
5253
mock_topology.create().__enter__.return_value = [{"cluster_name": "cluster1", "data_nodes": [{"endpoint": "localhost", "port": 9200, "transport": 9300}], "cluster_manager_nodes": []}]
53-
mock_multi_execute_integtest_sh = MagicMock()
54-
IntegTestSuiteOpenSearch.multi_execute_integtest_sh = mock_multi_execute_integtest_sh # type: ignore
5554
mock_multi_execute_integtest_sh.return_value = "success"
5655

5756
test_results = integ_test_suite.execute_tests()
@@ -63,9 +62,10 @@ def test_execute_with_multiple_test_configs(self, mock_test_recorder: Mock, mock
6362
call([{"cluster_name": "cluster1", "data_nodes": [{"endpoint": "localhost", "port": 9200, "transport": 9300}], "cluster_manager_nodes": []}], False, "without-security")
6463
])
6564

65+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.IntegTestSuiteOpenSearch.multi_execute_integtest_sh")
6666
@patch("test_workflow.integ_test.integ_test_suite_opensearch.Topology")
6767
@patch("test_workflow.test_recorder.test_recorder.TestRecorder")
68-
def test_execute_with_build_dependencies(self, mock_test_recorder: Mock, mock_topology: Mock, *mock: Any) -> None:
68+
def test_execute_with_build_dependencies(self, mock_test_recorder: Mock, mock_topology: Mock, mock_multi_execute_integtest_sh: Mock, *mock: Any) -> None:
6969
dependency_installer = MagicMock()
7070
test_config, component = self.__get_test_config_and_bundle_component("index-management")
7171
integ_test_suite = IntegTestSuiteOpenSearch(
@@ -80,8 +80,6 @@ def test_execute_with_build_dependencies(self, mock_test_recorder: Mock, mock_to
8080

8181
mock_topology.create().__enter__.return_value = [{"cluster_name": "cluster1", "data_nodes": [{"endpoint": "localhost", "port": 9200, "transport": 9300}], "cluster_manager_nodes": []}]
8282

83-
mock_multi_execute_integtest_sh = MagicMock()
84-
IntegTestSuiteOpenSearch.multi_execute_integtest_sh = mock_multi_execute_integtest_sh # type: ignore
8583
mock_multi_execute_integtest_sh.return_value = "success"
8684

8785
integ_test_suite.execute_tests()
@@ -93,6 +91,7 @@ def test_execute_with_build_dependencies(self, mock_test_recorder: Mock, mock_to
9391
[{"cluster_name": "cluster1", "data_nodes": [{"endpoint": "localhost", "port": 9200, "transport": 9300}], "cluster_manager_nodes": []}], False, "without-security")]
9492
)
9593

94+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.IntegTestSuiteOpenSearch.multi_execute_integtest_sh")
9695
@patch("test_workflow.test_recorder.test_recorder.TestRecorder")
9796
@patch("test_workflow.integ_test.integ_test_suite_opensearch.execute")
9897
def test_execute_without_build_dependencies(self, mock_execute: Mock, *mock: Any) -> None:
@@ -160,9 +159,10 @@ def __get_test_config_and_bundle_component(self, component_name: str) -> Tuple[T
160159

161160
@patch("os.path.exists", return_value=True)
162161
@patch.object(ScriptFinder, "find_integ_test_script")
162+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.IntegTestSuiteOpenSearch.multi_execute_integtest_sh")
163163
@patch("test_workflow.integ_test.integ_test_suite_opensearch.Topology")
164164
@patch("test_workflow.test_recorder.test_recorder.TestRecorder")
165-
def test_execute_with_working_directory(self, mock_test_recorder: Mock, mock_topology: Mock, mock_script_finder: Mock, *mock: Any) -> None:
165+
def test_execute_with_working_directory(self, mock_test_recorder: Mock, mock_topology: Mock, mock_multi_execute_integtest_sh: Mock, mock_script_finder: Mock, *mock: Any) -> None:
166166
test_config, component = self.__get_test_config_and_bundle_component("dashboards-reports")
167167
dependency_installer = MagicMock()
168168
integ_test_suite = IntegTestSuiteOpenSearch(
@@ -178,8 +178,6 @@ def test_execute_with_working_directory(self, mock_test_recorder: Mock, mock_top
178178
mock_topology.create().__enter__.return_value = [{"cluster_name": "cluster1", "data_nodes": [{"endpoint": "localhost", "port": 9200, "transport": 9300}], "cluster_manager_nodes": []}]
179179
mock_script_finder.return_value = "integtest.sh"
180180

181-
mock_multi_execute_integtest_sh = MagicMock()
182-
IntegTestSuiteOpenSearch.multi_execute_integtest_sh = mock_multi_execute_integtest_sh # type: ignore
183181
mock_multi_execute_integtest_sh.return_value = "success"
184182

185183
integ_test_suite.execute_tests() # type: ignore
@@ -189,3 +187,60 @@ def test_execute_with_working_directory(self, mock_test_recorder: Mock, mock_top
189187
True,
190188
"with-security"
191189
)
190+
191+
@patch("os.path.exists")
192+
@patch("os.makedirs")
193+
@patch("test_workflow.test_recorder.test_recorder.TestRecorder")
194+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.TestResultData")
195+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.GitRepository.__checkout__")
196+
@patch("test_workflow.integ_test.integ_test_suite_opensearch.execute", return_value=True)
197+
def test_multi_execute_integtest_sh(self, mock_execute: Mock, mock_git: Mock, mock_test_result_data: Mock,
198+
mock_test_recorder: Mock, mock_makedirs: Mock, mock_path_exists: Mock, *mock: Any) -> None:
199+
mock_find = MagicMock()
200+
mock_find.return_value = "./integtest.sh"
201+
202+
ScriptFinder.find_integ_test_script = mock_find # type: ignore
203+
204+
mock_execute.return_value = ("test_status", "test_stdout", "")
205+
206+
mock_test_result_data_object = MagicMock()
207+
mock_test_result_data.return_value = mock_test_result_data_object
208+
mock_path_exists.return_value = True
209+
210+
test_config, component = self.__get_test_config_and_bundle_component("job-scheduler")
211+
dependency_installer = MagicMock()
212+
integ_test_suite = IntegTestSuiteOpenSearch(
213+
dependency_installer,
214+
component,
215+
test_config,
216+
self.bundle_manifest,
217+
self.build_manifest,
218+
self.work_dir,
219+
mock_test_recorder
220+
)
221+
222+
self.assertEqual(integ_test_suite.repo.url, "https://github.com/opensearch-project/job-scheduler.git")
223+
self.assertEqual(integ_test_suite.repo.ref, "4504dabfc67dd5628c1451e91e9a1c3c4ca71525")
224+
integ_test_suite.repo.dir = "dir"
225+
226+
# call the test target
227+
mock_endpoint = MagicMock()
228+
status = integ_test_suite.multi_execute_integtest_sh([mock_endpoint], True, "with-security")
229+
230+
mock_find.assert_called()
231+
self.assertEqual(status, "test_status")
232+
mock_execute.assert_called()
233+
234+
mock_test_result_data.assert_called_once_with(
235+
"job-scheduler",
236+
"with-security",
237+
"test_status",
238+
"test_stdout",
239+
"",
240+
{
241+
"opensearch-integ-test": os.path.join("dir", "build", "reports", "tests", "integTest")
242+
}
243+
)
244+
245+
assert(mock_test_result_data.return_value in integ_test_suite.result_data)
246+
self.assertEqual(integ_test_suite.additional_cluster_config, None)

0 commit comments

Comments
 (0)
Please sign in to comment.