diff --git a/openflexure_microscope/api/dev_extensions/__init__.py b/openflexure_microscope/api/dev_extensions/__init__.py index b893e6a0..e951fc64 100644 --- a/openflexure_microscope/api/dev_extensions/__init__.py +++ b/openflexure_microscope/api/dev_extensions/__init__.py @@ -1 +1 @@ -from .raiser import raiser_extension_v2 \ No newline at end of file +from .tools import devtools_extension_v2 \ No newline at end of file diff --git a/openflexure_microscope/api/dev_extensions/raiser.py b/openflexure_microscope/api/dev_extensions/raiser.py deleted file mode 100644 index 1098fefe..00000000 --- a/openflexure_microscope/api/dev_extensions/raiser.py +++ /dev/null @@ -1,14 +0,0 @@ -from labthings.server.extensions import BaseExtension -from labthings.server.view import ActionView - -class RaiseException(ActionView): - def post(self): - raise Exception("The developer raised an exception") - -raiser_extension_v2 = BaseExtension( - "org.openflexure.dev.raiser", - version="0.1.0", - description="Actions to cause various traumatic events in the microscope, used for testing.", -) - -raiser_extension_v2.add_view(RaiseException, "/raise") \ No newline at end of file diff --git a/openflexure_microscope/api/dev_extensions/tools.py b/openflexure_microscope/api/dev_extensions/tools.py new file mode 100644 index 00000000..564dcd6d --- /dev/null +++ b/openflexure_microscope/api/dev_extensions/tools.py @@ -0,0 +1,37 @@ +from labthings.server.extensions import BaseExtension +from labthings.server.view import ActionView + +from labthings.server import fields +from labthings.server.decorators import use_args, marshal_with + +import logging +import time + +class RaiseException(ActionView): + def post(self): + raise Exception("The developer raised an exception") + +class SleepFor(ActionView): + @marshal_with({ + "TimeAsleep": fields.Float() + }) + @use_args({ + "time": fields.Float(description="Time to sleep, in seconds", example=0.5) + }) + def post(self, args): + sleep_time = args.get("time") + logging.info(f"Going to sleep for {sleep_time}...") + start = time.time() + time.sleep(sleep_time) + end = time.time() + logging.info("Waking up!") + return {"TimeAsleep": (end - start)} + +devtools_extension_v2 = BaseExtension( + "org.openflexure.dev.tools", + version="0.1.0", + description="Actions to cause various traumatic events in the microscope, used for testing.", +) + +devtools_extension_v2.add_view(RaiseException, "/raise") +devtools_extension_v2.add_view(SleepFor, "/sleep") \ No newline at end of file