def test_no_provider(self):
        # Top Level is here tests
        IMPORTS = ["tests.DummyModule", "tests.DummyModule2"]
        debug = Scope("Testing")

        # Module laden
        runtime = Runtime(debug)
        for name in IMPORTS:
            runtime.load(name)

        self.assertTrue("DummyModule" in runtime.service.modules)
        self.assertTrue("DummyModule2" in runtime.service.modules)
        self.assertTrue("DummyModule3" in runtime.service.modules)

        # Try to resolve 3 gives an exception because there is no provider for X
        result = runtime.service.resolve(["DummyModule3"])
    def test_module_loading_and_resolving(self):
        # Top Level is here tests
        IMPORTS = ["bitbots.framework.tests.dummy_module", "bitbots.framework.tests.dummy_module2"]
        debug = Scope("Testing")

        # Module laden
        runtime = Runtime(debug)
        for name in IMPORTS:
            runtime.load(name)

        self.assertIn("DummyModule", runtime.service.modules, str(runtime.service.modules))
        self.assertIn("A", runtime.service.modules["DummyModule"].provides)
        self.assertIn("B", runtime.service.modules["DummyModule"].provides)

        self.assertIn("DummyModule2", runtime.service.modules)
        self.assertIn("A", runtime.service.modules["DummyModule2"].requires)
        self.assertIn("B", runtime.service.modules["DummyModule2"].requires)
        self.assertIn("C", runtime.service.modules["DummyModule2"].provides)

        # Just call Resolve with DummyModule2 - It should then automatically load DummyModule too
        result = runtime.service.resolve(["DummyModule2"])
        self.assertEquals("DummyModule", result[0])
        self.assertEquals("DummyModule2", result[1])