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
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
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
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
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)
def test_register_extension(thing): extension = BaseExtension("org.labthings.tests.extension") thing.register_extension(extension) assert thing.extensions.get("org.labthings.tests.extension") == extension
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:
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
from labthings.extensions import BaseExtension test_extension = BaseExtension("org.labthings.tests.extension") test_extension_excluded = BaseExtension( "org.labthings.tests.extension_excluded") __extensions__ = ["test_extension"]
from labthings.extensions import BaseExtension test_extension = BaseExtension("org.labthings.tests.extension_package")
from labthings.extensions import BaseExtension test_extension = BaseExtension("org.labthings.tests.extension")