コード例 #1
0
def test_on_component_callback_wrong_component(thing):
    def f(component):
        component.callback_called = True

    extension = BaseExtension("org.labthings.tests.extension")
    extension.on_component("org.labthings.tests.component", f)
    thing.register_extension(extension)

    component = type("component", (object, ), {"callback_called": False})
    thing.add_component(component, "org.labthings.tests.wrong_component")
    assert not component.callback_called
コード例 #2
0
def test_on_register_callback(thing):
    # Build extension
    def f(extension):
        extension.callback_called = True

    extension = BaseExtension("org.labthings.tests.extension")
    extension.callback_called = False
    extension.on_register(f, args=(extension, ))
    # Add extension
    thing.register_extension(extension)

    # Check callback
    assert extension.callback_called
コード例 #3
0
def test_find_extension(thing, thing_ctx):
    extension = BaseExtension("org.labthings.tests.extension")
    thing.register_extension(extension)

    with thing_ctx.test_request_context():
        assert find.find_extension(
            "org.labthings.tests.extension") == extension
コード例 #4
0
def test_on_component_callback(thing):
    # Build extension
    def f(component):
        component.callback_called = True

    extension = BaseExtension("org.labthings.tests.extension")
    extension.on_component("org.labthings.tests.component", f)
    # Add extension
    thing.register_extension(extension)

    # Build component
    component = type("component", (object, ), {"callback_called": False})

    # Add component
    thing.add_component(component, "org.labthings.tests.component")
    # Check callback
    assert component.callback_called
コード例 #5
0
def test_extension_schema(app_ctx):
    test_schema = schema.ExtensionSchema()
    test_extension = BaseExtension("org.labthings.tests.extension")

    with app_ctx.test_request_context():
        d = test_schema.dump(test_extension)
        assert isinstance(d, dict)
        assert "pythonName" in d
        assert d.get("pythonName") == "org.labthings.tests.extension"
        assert "links" in d
        assert isinstance(d.get("links"), dict)
コード例 #6
0
def test_register_extension(thing):
    extension = BaseExtension("org.labthings.tests.extension")
    thing.register_extension(extension)
    assert thing.extensions.get("org.labthings.tests.extension") == extension
コード例 #7
0
        n_averages = args.get("averages")
        return my_component.average_data(n_averages)


def ext_on_register():
    logging.info("Extension registered")


def ext_on_my_component(component):
    logging.info(f"{component} registered and noticed by extension")


static_folder = path_relative_to(__file__, "static")

example_extension = BaseExtension(
    "org.labthings.examples.extension", static_folder=static_folder
)

example_extension.add_view(ExtensionMeasurementAction, "/measure", endpoint="measure")

example_extension.on_register(ext_on_register)
example_extension.on_component("org.labthings.example.mycomponent", ext_on_my_component)


"""
Class for our lab component functionality. This could include serial communication,
equipment API calls, network requests, or a "virtual" device as seen here.
"""


class MyComponent:
コード例 #8
0
def test_find_extension_explicit_thing(thing):
    extension = BaseExtension("org.labthings.tests.extension")
    thing.register_extension(extension)

    assert find.find_extension("org.labthings.tests.extension",
                               thing) == extension
コード例 #9
0
from labthings.extensions import BaseExtension

test_extension = BaseExtension("org.labthings.tests.extension")
test_extension_excluded = BaseExtension(
    "org.labthings.tests.extension_excluded")

__extensions__ = ["test_extension"]
コード例 #10
0
from labthings.extensions import BaseExtension

test_extension = BaseExtension("org.labthings.tests.extension_package")
コード例 #11
0
from labthings.extensions import BaseExtension

test_extension = BaseExtension("org.labthings.tests.extension")