Пример #1
0
def test_MantarrayProcessesManager__passes_file_directory_to_FileWriter():
    manager = MantarrayProcessesManager(file_directory="blahdir")
    manager.create_processes()
    assert manager.get_file_writer_process().get_file_directory() == "blahdir"

    # clean up the ServerManager singleton
    clear_the_server_manager()
Пример #2
0
def test_MantarrayProcessesManager__passes_shared_values_dict_to_server():
    expected_dict = {"beta_2_mode": False}
    manager = MantarrayProcessesManager(
        values_to_share_to_server=expected_dict)
    manager.create_processes()
    assert manager.get_server_manager().get_values_from_process_monitor(
    ) == expected_dict

    # clean up the ServerManager singleton
    clear_the_server_manager()
Пример #3
0
def test_MantarrayProcessesManager__creates_mc_comm_instead_of_ok_comm_when_beta_2_flag_is_set_true(
    mocker, ):
    shared_values_dict = {"beta_2_mode": True}
    manager = MantarrayProcessesManager(
        values_to_share_to_server=shared_values_dict)
    manager.create_processes()

    mc_comm_process = manager.get_instrument_process()
    assert isinstance(mc_comm_process, McCommunicationProcess) is True

    # clean up the ServerManager singleton
    clear_the_server_manager()
Пример #4
0
def start_processes_and_wait_for_start_ups_to_complete(
    test_manager: MantarrayProcessesManager, ) -> None:
    timeout_seconds = 12
    test_manager.start_processes()
    start_time = perf_counter()
    while True:
        sleep(0.5)
        if test_manager.are_subprocess_start_ups_complete():
            return
        if perf_counter() - start_time > timeout_seconds:
            raise Exception(
                f"Subprocesses were not started within the timeout of {timeout_seconds} seconds"
            )
Пример #5
0
def test_MantarrayProcessesManager__passes_beta_2_flag_to_subprocesses_other_than_instrument_comm(
    mocker, ):
    expected_beta_2_flag = True
    shared_values_dict = {"beta_2_mode": expected_beta_2_flag}
    manager = MantarrayProcessesManager(
        values_to_share_to_server=shared_values_dict)

    spied_fw_init = mocker.spy(FileWriterProcess, "__init__")
    spied_da_init = mocker.spy(DataAnalyzerProcess, "__init__")

    manager.create_processes()

    assert spied_fw_init.call_args.kwargs["beta_2_mode"] is expected_beta_2_flag
    assert spied_da_init.call_args.kwargs["beta_2_mode"] is expected_beta_2_flag

    # clean up the ServerManager singleton
    clear_the_server_manager()
Пример #6
0
def test_MantarrayProcessesManager__create_processes__passes_port_value_from_dictionary_to_server_manager(
    mocker, ):
    expected_port = 5432
    manager = MantarrayProcessesManager(values_to_share_to_server={
        "server_port_number": expected_port,
        "beta_2_mode": False,
    })
    spied_create_server_manager = mocker.spy(ServerManager, "__init__")

    manager.create_processes()

    spied_create_server_manager.assert_called_once()
    assert spied_create_server_manager.call_args.kwargs[
        "port"] == expected_port

    # clean up the ServerManager singleton
    clear_the_server_manager()
Пример #7
0
def test_MantarrayProcessesManager__passes_logging_level_to_subprocesses():
    expected_level = logging.WARNING
    manager = MantarrayProcessesManager(logging_level=expected_level)
    manager.create_processes()
    assert manager.get_file_writer_process().get_logging_level(
    ) == expected_level
    assert manager.get_instrument_process().get_logging_level(
    ) == expected_level
    assert manager.get_data_analyzer_process().get_logging_level(
    ) == expected_level
    assert manager.get_server_manager().get_logging_level() == expected_level

    # clean up the ServerManager singleton
    clear_the_server_manager()
Пример #8
0
    def _foo(beta_2_mode=False,
             create_processes=True,
             use_testing_queues=False):
        if use_testing_queues:

            def get_testing_queue():
                return TestingQueue()

            mocker.patch.object(queue_container,
                                "Queue",
                                autospec=True,
                                side_effect=get_testing_queue)

        with tempfile.TemporaryDirectory() as tmp_dir:
            manager = MantarrayProcessesManager(
                file_directory=tmp_dir,
                values_to_share_to_server={
                    "beta_2_mode": beta_2_mode,
                    "stored_customer_id": GENERIC_STORED_CUSTOMER_ID,
                    "config_settings": dict(),
                },
            )
            if use_testing_queues:
                mocker.patch.object(
                    manager,
                    "start_processes",
                    autospec=True,
                    side_effect=NotImplementedError(
                        "Cannot start processes when using a process_manager fixture setup with TestingQueues"
                    ),
                )
            if create_processes:
                manager.create_processes()
                object_access_dict[
                    "fw_process"] = manager.get_file_writer_process()
            return manager
Пример #9
0
def fixture_generic_manager():
    manager = MantarrayProcessesManager()
    yield manager

    if manager.are_subprocess_start_ups_complete(
    ) and not manager.are_processes_stopped():
        manager.hard_stop_processes()

    # aspects of processes are often mocked just to assert they are called, so make sure to explicitly clean up the ServerManager module singleton
    clear_the_server_manager()
Пример #10
0
def test_MantarrayProcessesManager__are_subprocess_start_ups_complete__returns_false_if_none_are_created(
):
    test_manager = MantarrayProcessesManager()
    assert test_manager.are_subprocess_start_ups_complete() is False