Example #1
0
def test_init_bundle_loader_with_running_framework(delete_framework):
    """
    Tests that creating a Loader instance with an already running Pelix
    framework will work and enforce a correct configuration of the framework.
    """

    framework = pelix.framework.create_framework(())
    assert framework.get_bundle_by_name("pelix.ipopo.core") is None
    assert FrameworkFactory.is_framework_running()

    # Creating a loader instance where existing framework misses
    # pelix.ipopo.core bundle.
    # This bundle is expected to be added to the framework at Loader
    # initialization
    loader = BundleLoader()
    assert framework is loader.framework
    assert loader.framework.get_bundle_by_name("pelix.ipopo.core") is not None
    del loader

    # Same as above, but now, existing framework HAS pelix.ipopo.core bundle
    loader = BundleLoader()
    assert framework is loader.framework
    assert loader.framework.get_bundle_by_name("pelix.ipopo.core") is not None
    del loader

    # Framework outlives the Loader
    assert FrameworkFactory.is_framework_running()
Example #2
0
def delete_framework():
    """ Ensures framework is deleted before and after running tests"""
    if FrameworkFactory.is_framework_running():
        FrameworkFactory.get_framework().delete(True)

    yield

    if FrameworkFactory.is_framework_running():
        FrameworkFactory.get_framework().delete(True)
Example #3
0
def test_init_bundle_loader_from_scratch(delete_framework):
    """
    Tests that creating a Loader instance will start a correctly configured
    Pelix framework
    """
    assert not FrameworkFactory.is_framework_running()

    loader = BundleLoader()
    _ = loader.framework  # a first call for initiating the framework
    framework = FrameworkFactory.get_framework()
    assert FrameworkFactory.is_framework_running()
    assert framework is loader.framework
    assert framework.get_bundle_by_name("pelix.ipopo.core") is not None

    # Framework outlives the Loader
    del loader
    assert FrameworkFactory.is_framework_running()

    # Another instance gets back the framework
    loader = BundleLoader()
    assert framework is loader.framework
Example #4
0
 def framework(self) -> Framework:
     """
     The currently running Pelix framework instance, or a new one if none is running (anyway,
     the framework instance will continue after deletion of this BundleLoader instance)
     """
     if FrameworkFactory.is_framework_running():
         self._framework = FrameworkFactory.get_framework()
         # Do not use self.context, because it will call back this.
         context = self._framework.get_bundle_context()
         if not context.get_service_reference(SERVICE_IPOPO):
             self._framework.install_bundle(SERVICE_IPOPO)
     else:
         self._framework = pelix.framework.create_framework(())
         self._framework.install_bundle(SERVICE_IPOPO)
         self._framework.start()
     return self._framework
def test_pelix_framework_is_started():
    """
    Tests that Pelix framework is automatically started
    """

    assert FrameworkFactory.is_framework_running()