Source code for libmuscle.manager.test.conftest

import pytest
from ymmsl.v0_2 import Component, Conduit, Configuration, Model, Ports, Reference

from libmuscle.manager.deadlock_detector import DeadlockDetector
from libmuscle.manager.instance_registry import InstanceRegistry
from libmuscle.manager.logger import Logger
from libmuscle.manager.mmp_server import MMPRequestHandler
from libmuscle.manager.profile_store import ProfileStore
from libmuscle.manager.run_dir import RunDir
from libmuscle.manager.snapshot_registry import SnapshotRegistry
from libmuscle.manager.topology_store import TopologyStore


[docs] @pytest.fixture def logger(tmp_path): test_logger = Logger(tmp_path) yield test_logger test_logger.close()
[docs] @pytest.fixture def mmp_configuration(): return Configuration( "mmp_configuration", [], [ Model( "test_model", None, "", None, [ Component( "macro", Ports(o_i=["out"], s=["in"]), "", "macro_implementation", ), Component( "micro", Ports(f_init=["in"], o_f=["out"]), "", "micro_implementation", False, [10, 10], ), ], [Conduit("macro.out", "micro.in"), Conduit("micro.out", "macro.in")], ) ], )
[docs] @pytest.fixture def profile_store(tmp_path): test_profile_store = ProfileStore(tmp_path) yield test_profile_store test_profile_store.shutdown()
[docs] @pytest.fixture def instance_registry(): return InstanceRegistry()
[docs] @pytest.fixture def topology_store(mmp_configuration) -> TopologyStore: return TopologyStore(mmp_configuration)
[docs] @pytest.fixture def snapshot_registry(mmp_configuration, topology_store) -> SnapshotRegistry: return SnapshotRegistry(mmp_configuration, None, topology_store)
[docs] @pytest.fixture def deadlock_detector() -> DeadlockDetector: return DeadlockDetector()
[docs] @pytest.fixture def mmp_request_handler( logger, profile_store, mmp_configuration, instance_registry, topology_store, snapshot_registry, deadlock_detector, ): return MMPRequestHandler( logger, profile_store, mmp_configuration, instance_registry, topology_store, snapshot_registry, deadlock_detector, None, )
[docs] @pytest.fixture def loaded_instance_registry(instance_registry): instance_registry.add(Reference("macro"), ["direct:macro"], []) for j in range(10): for i in range(10): name = Reference("micro") + j + i location = f"direct:{name}" instance_registry.add(name, [location], []) return instance_registry
[docs] @pytest.fixture def registered_mmp_request_handler( logger, profile_store, mmp_configuration, loaded_instance_registry, topology_store, snapshot_registry, deadlock_detector, ): return MMPRequestHandler( logger, profile_store, mmp_configuration, loaded_instance_registry, topology_store, snapshot_registry, deadlock_detector, None, )
[docs] @pytest.fixture def mmp_configuration2(): return Configuration( "mmp_configuration2", [], [ Model( "test_model", None, "", None, [ Component( "macro", Ports(o_i=["out"], s=["in"]), "", "macro_implementation", ), Component( "meso", Ports(f_init=["init"], o_i=["out"], s=["in"], o_f=["final"]), "", "meso_implementation", False, [5], ), Component( "micro", Ports(f_init=["init"], o_f=["final"]), "", "micro_implementation", False, [5, 10], ), ], [ Conduit("macro.out", "meso.init"), Conduit("meso.out", "micro.init"), Conduit("micro.final", "meso.in"), Conduit("meso.final", "macro.in"), ], ) ], )
[docs] @pytest.fixture def topology_store2(mmp_configuration2) -> TopologyStore: return TopologyStore(mmp_configuration2)
[docs] @pytest.fixture def snapshot_registry2(mmp_configuration2, topology_store) -> SnapshotRegistry: return SnapshotRegistry(mmp_configuration2, None, topology_store)
[docs] @pytest.fixture def loaded_instance_registry2(): instance_registry = InstanceRegistry() instance_registry.add(Reference("macro"), ["direct:macro"], []) for j in range(5): name = Reference("meso") + j location = f"direct:{name}" instance_registry.add(name, [location], []) for j in range(5): for i in range(10): name = Reference("micro") + j + i location = f"direct:{name}" instance_registry.add(name, [location], []) return instance_registry
[docs] @pytest.fixture def registered_mmp_request_handler2( logger, profile_store, mmp_configuration, loaded_instance_registry2, topology_store2, snapshot_registry2, deadlock_detector, tmp_path, ): return MMPRequestHandler( logger, profile_store, mmp_configuration, loaded_instance_registry2, topology_store2, snapshot_registry2, deadlock_detector, RunDir(tmp_path), )