Static type analysis
This commit is contained in:
parent
3aebb8bead
commit
7866ec0f47
63 changed files with 1825 additions and 2722 deletions
151
tests/test_capture_manager.py
Normal file
151
tests/test_capture_manager.py
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
import os
|
||||
from typing import Type
|
||||
|
||||
import pytest
|
||||
from freezegun import freeze_time
|
||||
|
||||
from openflexure_microscope.captures.capture_manager import (
|
||||
BASE_CAPTURE_PATH,
|
||||
TEMP_CAPTURE_PATH,
|
||||
CaptureManager,
|
||||
)
|
||||
|
||||
|
||||
def test_new_manager():
|
||||
m = CaptureManager()
|
||||
assert BASE_CAPTURE_PATH
|
||||
assert TEMP_CAPTURE_PATH
|
||||
assert m.paths["default"] == BASE_CAPTURE_PATH
|
||||
assert m.paths["temp"] == TEMP_CAPTURE_PATH
|
||||
|
||||
|
||||
def test_update_settings():
|
||||
m = CaptureManager()
|
||||
assert m.paths["default"] == BASE_CAPTURE_PATH
|
||||
assert m.paths["temp"] == TEMP_CAPTURE_PATH
|
||||
|
||||
new_settings = {
|
||||
"paths": {"default": "BASE_CAPTURE_PATH", "temp": "TEMP_CAPTURE_PATH"}
|
||||
}
|
||||
m.update_settings(new_settings)
|
||||
assert m.paths["default"] == "BASE_CAPTURE_PATH"
|
||||
assert m.paths["temp"] == "TEMP_CAPTURE_PATH"
|
||||
assert m.read_settings() == new_settings
|
||||
|
||||
|
||||
def test__new_output():
|
||||
m = CaptureManager()
|
||||
|
||||
out = m._new_output(True, "filename", "subfolder", "fmt")
|
||||
assert out.file == os.path.join(TEMP_CAPTURE_PATH, "subfolder", "filename.fmt")
|
||||
|
||||
|
||||
def test__new_output_generate_filename():
|
||||
m = CaptureManager()
|
||||
|
||||
out = m._new_output(True, None, "subfolder", "fmt")
|
||||
# Assert a filename was actually generated
|
||||
assert out.name != ".fmt"
|
||||
|
||||
|
||||
def test_new_image():
|
||||
m = CaptureManager()
|
||||
out = m.new_image()
|
||||
capture_key = str(out.id)
|
||||
assert capture_key in m.images.keys()
|
||||
assert m.images[capture_key] is out
|
||||
|
||||
|
||||
def test_new_video():
|
||||
m = CaptureManager()
|
||||
out = m.new_video()
|
||||
capture_key = str(out.id)
|
||||
assert capture_key in m.videos.keys()
|
||||
assert m.videos[capture_key] is out
|
||||
|
||||
|
||||
def test_image_from_id_str():
|
||||
m = CaptureManager()
|
||||
out = m.new_image()
|
||||
capture_key = str(out.id)
|
||||
|
||||
assert m.image_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_image_from_id_int():
|
||||
m = CaptureManager()
|
||||
out = m.new_image()
|
||||
capture_key = int(out.id)
|
||||
|
||||
assert m.image_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_image_from_id_uuid():
|
||||
m = CaptureManager()
|
||||
out = m.new_image()
|
||||
capture_key = out.id
|
||||
|
||||
assert m.image_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_image_from_id_invalid():
|
||||
m = CaptureManager()
|
||||
out = m.new_image()
|
||||
capture_key = object()
|
||||
|
||||
with pytest.raises(TypeError):
|
||||
m.image_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_video_from_id_str():
|
||||
m = CaptureManager()
|
||||
out = m.new_video()
|
||||
capture_key = str(out.id)
|
||||
|
||||
assert m.video_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_video_from_id_int():
|
||||
m = CaptureManager()
|
||||
out = m.new_video()
|
||||
capture_key = int(out.id)
|
||||
|
||||
assert m.video_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_video_from_id_uuid():
|
||||
m = CaptureManager()
|
||||
out = m.new_video()
|
||||
capture_key = out.id
|
||||
|
||||
assert m.video_from_id(capture_key) is out
|
||||
|
||||
|
||||
def test_video_from_id_invalid():
|
||||
m = CaptureManager()
|
||||
out = m.new_video()
|
||||
capture_key = object()
|
||||
|
||||
with pytest.raises(TypeError):
|
||||
m.video_from_id(capture_key) is out
|
||||
|
||||
|
||||
@freeze_time("2020-11-27 12:00:01")
|
||||
def test_generate_numbered_basename():
|
||||
m = CaptureManager()
|
||||
for _ in range(10):
|
||||
m.new_image()
|
||||
generated_filenames = [obj.basename for obj in m.images.values()]
|
||||
# Assert enough names were generated
|
||||
assert len(generated_filenames) == 10
|
||||
# Assert all names are unique
|
||||
len(generated_filenames) > len(set(generated_filenames))
|
||||
# Assert all filenames are in the expected form
|
||||
for fname in generated_filenames:
|
||||
assert fname.startswith("2020-11-27_12-00-01")
|
||||
|
||||
|
||||
def test_context_manager():
|
||||
with CaptureManager() as m:
|
||||
m.new_image()
|
||||
m.new_video()
|
||||
Loading…
Add table
Add a link
Reference in a new issue