3
3
import csle_common .constants .constants as constants
4
4
from unittest .mock import patch , MagicMock
5
5
from csle_common .dao .emulation_config .emulation_env_config import EmulationEnvConfig
6
- from csle_common .controllers .ossec_ids_controller import (
7
- OSSECIDSController ,
8
- )
6
+ from csle_common .controllers .ossec_ids_controller import OSSECIDSController
9
7
10
8
11
9
class TestOssecIdsSuite :
@@ -192,9 +190,7 @@ def test_start_ossec_idses_managers(self, mock_start_manager) -> None:
192
190
193
191
@patch ("csle_common.util.emulation_util.EmulationUtil.connect_admin" )
194
192
@patch ("csle_common.util.emulation_util.EmulationUtil.execute_ssh_cmd" )
195
- def test_start_ossec_ids_manager (
196
- self , mock_execute_ssh_cmd , mock_connect_admin
197
- ) -> None :
193
+ def test_start_ossec_ids_manager (self , mock_execute_ssh_cmd , mock_connect_admin ) -> None :
198
194
"""
199
195
Test method for starting the OSSEC IDS manager on a specific container
200
196
@@ -205,6 +201,7 @@ def test_start_ossec_ids_manager(
205
201
"""
206
202
ip = "192.168.1.10"
207
203
mock_execute_ssh_cmd .return_value = ("ossec_ids_manager running" , "" , 0 )
204
+ constants .COMMANDS .SEARCH_OSSEC_IDS_MANAGER = "ossec_ids_manager running"
208
205
OSSECIDSController .start_ossec_ids_manager (
209
206
emulation_env_config = self .emulation_env_config , ip = ip
210
207
)
@@ -252,14 +249,24 @@ def test_stop_ossec_ids_manager(
252
249
mock_execute_ssh_cmd .assert_called ()
253
250
mock_connect_admin .assert_called ()
254
251
255
- """@patch("csle_common.controllers.ossec_ids_controller.OSSECIDSController.start_ossec_ids_monitor_thread")
256
- def test_start_ossec_idses_monitor_threads(self, mock_start_monitor) -> None:
257
- constants.CONTAINER_IMAGES = MagicMock()
252
+ @patch ("csle_common.controllers.ossec_ids_controller.OSSECIDSController.start_ossec_idses_managers" )
253
+ @patch ("csle_common.controllers.ossec_ids_controller.OSSECIDSController.start_ossec_ids_monitor_thread" )
254
+ def test_start_ossec_idses_monitor_threads (self , mock_start_monitor , mock_start_managers ) -> None :
255
+ """
256
+ Unit test for the start_ossec_ids_monnitor_threads method of the OSSEC IDS controller
257
+
258
+ :param mock_start_monitor: mock of the start_monitor method
259
+ :param mock_start_managers: mock of the start_managers method
260
+ :return:
261
+ """
258
262
constants .CONTAINER_IMAGES .OSSEC_IDS_IMAGES = ["container-1" , "container-2" ]
259
263
physical_server_ip = "192.168.1.10"
260
264
OSSECIDSController .start_ossec_idses_monitor_threads (emulation_env_config = self .emulation_env_config ,
261
- physical_server_ip=physical_server_ip,logger=self.logger)
262
- assert mock_start_monitor.call_count == 2"""
265
+ physical_server_ip = physical_server_ip ,
266
+ logger = self .logger )
267
+ mock_start_managers .assert_called_once_with (emulation_env_config = self .emulation_env_config ,
268
+ physical_server_ip = physical_server_ip )
269
+ assert mock_start_monitor .call_count == 2
263
270
264
271
@patch (
265
272
"csle_common.controllers.ossec_ids_controller.OSSECIDSController.start_ossec_ids_manager"
@@ -303,7 +310,7 @@ def test_stop_ossec_ids_monitor_threads(self, mock_stop_monitor) -> None:
303
310
an IDS to stop the monitor threads
304
311
305
312
:param mock_stop_monitor: _description_
306
- :type mock_stop_monitor: _type_
313
+ :return: None
307
314
"""
308
315
constants .CONTAINER_IMAGES = MagicMock () # type: ignore
309
316
constants .CONTAINER_IMAGES .OSSEC_IDS_IMAGES = ["container-1" , "container-2" ]
@@ -317,16 +324,21 @@ def test_stop_ossec_ids_monitor_threads(self, mock_stop_monitor) -> None:
317
324
@patch (
318
325
"csle_common.controllers.ossec_ids_controller.OSSECIDSController.start_ossec_ids_manager"
319
326
)
320
- def test_stop_ossec_ids_monitor_thread (self , mock_start_manager ) -> None :
327
+ @patch ("grpc.insecure_channel" )
328
+ def test_stop_ossec_ids_monitor_thread (
329
+ self , mock_insecure_channel , mock_start_manager
330
+ ) -> None :
321
331
"""
322
332
Test a method that sends a request to the OSSECIDSManager for a specific IP to stop the monitor thread
323
333
324
334
:param mock_start_manager: mock start_manager
325
-
335
+ :param mock_insecure_channel: mock of the channel
326
336
:return: None
327
337
"""
338
+ mock_channel = MagicMock ()
339
+ mock_insecure_channel .return_value .__enter__ .return_value = mock_channel
328
340
ip = "192.168.1.10"
329
- OSSECIDSController .start_ossec_ids_monitor_thread (
341
+ OSSECIDSController .stop_ossec_ids_monitor_thread (
330
342
emulation_env_config = self .emulation_env_config , ip = ip
331
343
)
332
344
mock_start_manager .assert_called_once_with (
@@ -336,17 +348,18 @@ def test_stop_ossec_ids_monitor_thread(self, mock_start_manager) -> None:
336
348
@patch (
337
349
"csle_common.controllers.ossec_ids_controller.OSSECIDSController.start_ossec_idses_managers"
338
350
)
339
- def test_get_ossec_idses_monitor_threads_statuses (
340
- self , mock_start_managers
341
- ) -> None :
351
+ @patch ("grpc.insecure_channel" )
352
+ def test_get_ossec_idses_monitor_threads_statuses (self , mock_insecure_channel , mock_start_managers ) -> None :
342
353
"""
343
354
Test a method that sends a request to the OSSECIDSManager on every container to get the status of the
344
355
IDS monitor thread
345
356
346
357
:param mock_start_manager: mock start_manager
347
-
358
+ :param mock_insecure_channel: mock of the channel
348
359
:return: None
349
360
"""
361
+ mock_channel = MagicMock ()
362
+ mock_insecure_channel .return_value .__enter__ .return_value = mock_channel
350
363
physical_server_ip = "192.168.1.10"
351
364
constants .CONTAINER_IMAGES = MagicMock () # type: ignore
352
365
constants .CONTAINER_IMAGES .OSSEC_IDS_IMAGES = ["container-1" , "container-2" ]
0 commit comments