openflexure-microscope-server/hardware-specific-tests/picamera2/test_exposure_time_drift.py

32 lines
966 B
Python

import logging
import time
from fastapi.testclient import TestClient
from labthings_fastapi.server import ThingServer
from labthings_fastapi.client import ThingClient
from labthings_picamera2.thing import StreamingPiCamera2
logging.basicConfig(level=logging.DEBUG)
def test_exposure_time_drift():
cam = StreamingPiCamera2()
server = ThingServer()
server.add_thing(cam, "/camera/")
with TestClient(server.app) as test_client:
client = ThingClient.from_url("/camera/", client=test_client)
client.exposure_time = 50000
time.sleep(0.1)
initial_et = client.exposure_time
print(f"Before capture, et is {client.exposure_time}")
for i in range(10):
client.capture_jpeg(resolution="full")
print(f"After capture, et is {client.exposure_time}")
final_et = client.exposure_time
assert initial_et == final_et
if __name__ == "__main__":
test_exposure_time_drift()