|
|
|
|
@@ -34,7 +34,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**self.minimal)
|
|
|
|
|
assert self.minimal == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "cpu" in runtime_config.detectors.keys()
|
|
|
|
|
assert runtime_config.detectors["cpu"].type == DetectorTypeEnum.cpu
|
|
|
|
|
assert runtime_config.detectors["cpu"].model.width == 320
|
|
|
|
|
@@ -59,7 +59,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
frigate_config = FrigateConfig(**(deep_merge(config, self.minimal)))
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
|
|
|
|
|
assert "cpu" in runtime_config.detectors.keys()
|
|
|
|
|
assert "edgetpu" in runtime_config.detectors.keys()
|
|
|
|
|
@@ -125,7 +125,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "dog" in runtime_config.cameras["back"].objects.track
|
|
|
|
|
|
|
|
|
|
def test_override_birdseye(self):
|
|
|
|
|
@@ -151,7 +151,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert not runtime_config.cameras["back"].birdseye.enabled
|
|
|
|
|
assert runtime_config.cameras["back"].birdseye.mode is BirdseyeModeEnum.motion
|
|
|
|
|
|
|
|
|
|
@@ -177,7 +177,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].birdseye.enabled
|
|
|
|
|
|
|
|
|
|
def test_inherit_birdseye(self):
|
|
|
|
|
@@ -202,7 +202,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].birdseye.enabled
|
|
|
|
|
assert (
|
|
|
|
|
runtime_config.cameras["back"].birdseye.mode is BirdseyeModeEnum.continuous
|
|
|
|
|
@@ -231,7 +231,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "cat" in runtime_config.cameras["back"].objects.track
|
|
|
|
|
|
|
|
|
|
def test_default_object_filters(self):
|
|
|
|
|
@@ -256,7 +256,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "dog" in runtime_config.cameras["back"].objects.filters
|
|
|
|
|
|
|
|
|
|
def test_inherit_object_filters(self):
|
|
|
|
|
@@ -284,7 +284,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "dog" in runtime_config.cameras["back"].objects.filters
|
|
|
|
|
assert runtime_config.cameras["back"].objects.filters["dog"].threshold == 0.7
|
|
|
|
|
|
|
|
|
|
@@ -313,7 +313,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "dog" in runtime_config.cameras["back"].objects.filters
|
|
|
|
|
assert runtime_config.cameras["back"].objects.filters["dog"].threshold == 0.7
|
|
|
|
|
|
|
|
|
|
@@ -343,7 +343,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
back_camera = runtime_config.cameras["back"]
|
|
|
|
|
assert "dog" in back_camera.objects.filters
|
|
|
|
|
assert len(back_camera.objects.filters["dog"].raw_mask) == 2
|
|
|
|
|
@@ -374,7 +374,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "-rtsp_transport" in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
|
|
|
|
|
def test_ffmpeg_params_global(self):
|
|
|
|
|
@@ -403,7 +403,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "-re" in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
|
|
|
|
|
def test_ffmpeg_params_camera(self):
|
|
|
|
|
@@ -433,7 +433,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "-re" in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
assert "test" not in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
|
|
|
|
|
@@ -468,7 +468,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "-re" in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
assert "test" in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
assert "test2" not in runtime_config.cameras["back"].ffmpeg_cmds[0]["cmd"]
|
|
|
|
|
@@ -498,7 +498,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert (
|
|
|
|
|
runtime_config.cameras["back"].record.events.retain.objects["person"] == 30
|
|
|
|
|
)
|
|
|
|
|
@@ -576,7 +576,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert isinstance(
|
|
|
|
|
runtime_config.cameras["back"].zones["test"].contour, np.ndarray
|
|
|
|
|
)
|
|
|
|
|
@@ -608,7 +608,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
back_camera = runtime_config.cameras["back"]
|
|
|
|
|
assert back_camera.record.events.objects is None
|
|
|
|
|
assert back_camera.record.events.retain.objects["person"] == 30
|
|
|
|
|
@@ -639,7 +639,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
ffmpeg_cmds = runtime_config.cameras["back"].ffmpeg_cmds
|
|
|
|
|
assert len(ffmpeg_cmds) == 1
|
|
|
|
|
assert not "clips" in ffmpeg_cmds[0]["roles"]
|
|
|
|
|
@@ -670,7 +670,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].detect.max_disappeared == 5 * 5
|
|
|
|
|
|
|
|
|
|
def test_motion_frame_height_wont_go_below_120(self):
|
|
|
|
|
@@ -698,7 +698,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].motion.frame_height == 50
|
|
|
|
|
|
|
|
|
|
def test_motion_contour_area_dynamic(self):
|
|
|
|
|
@@ -726,7 +726,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert round(runtime_config.cameras["back"].motion.contour_area) == 30
|
|
|
|
|
|
|
|
|
|
def test_merge_labelmap(self):
|
|
|
|
|
@@ -755,7 +755,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.model.merged_labelmap[7] == "truck"
|
|
|
|
|
|
|
|
|
|
def test_default_labelmap_empty(self):
|
|
|
|
|
@@ -783,7 +783,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.model.merged_labelmap[0] == "person"
|
|
|
|
|
|
|
|
|
|
def test_default_labelmap(self):
|
|
|
|
|
@@ -812,7 +812,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.model.merged_labelmap[0] == "person"
|
|
|
|
|
|
|
|
|
|
def test_fails_on_invalid_role(self):
|
|
|
|
|
@@ -871,7 +871,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
self.assertRaises(ValueError, lambda: frigate_config.runtime_config)
|
|
|
|
|
self.assertRaises(ValueError, lambda: frigate_config.runtime_config())
|
|
|
|
|
|
|
|
|
|
def test_works_on_missing_role_multiple_cams(self):
|
|
|
|
|
config = {
|
|
|
|
|
@@ -919,7 +919,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
|
|
|
|
|
def test_global_detect(self):
|
|
|
|
|
config = {
|
|
|
|
|
@@ -946,7 +946,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].detect.max_disappeared == 1
|
|
|
|
|
assert runtime_config.cameras["back"].detect.height == 1080
|
|
|
|
|
|
|
|
|
|
@@ -969,7 +969,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].detect.max_disappeared == 25
|
|
|
|
|
assert runtime_config.cameras["back"].detect.height == 720
|
|
|
|
|
|
|
|
|
|
@@ -998,7 +998,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].detect.max_disappeared == 1
|
|
|
|
|
assert runtime_config.cameras["back"].detect.height == 1080
|
|
|
|
|
assert runtime_config.cameras["back"].detect.width == 1920
|
|
|
|
|
@@ -1026,7 +1026,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.enabled
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.height == 100
|
|
|
|
|
|
|
|
|
|
@@ -1049,7 +1049,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.bounding_box
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.quality == 70
|
|
|
|
|
|
|
|
|
|
@@ -1077,7 +1077,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.bounding_box == False
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.height == 150
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.enabled
|
|
|
|
|
@@ -1101,7 +1101,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert not runtime_config.cameras["back"].rtmp.enabled
|
|
|
|
|
|
|
|
|
|
def test_default_not_rtmp(self):
|
|
|
|
|
@@ -1123,7 +1123,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert not runtime_config.cameras["back"].rtmp.enabled
|
|
|
|
|
|
|
|
|
|
def test_global_rtmp_merge(self):
|
|
|
|
|
@@ -1149,7 +1149,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].rtmp.enabled
|
|
|
|
|
|
|
|
|
|
def test_global_rtmp_default(self):
|
|
|
|
|
@@ -1175,7 +1175,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert not runtime_config.cameras["back"].rtmp.enabled
|
|
|
|
|
|
|
|
|
|
def test_global_jsmpeg(self):
|
|
|
|
|
@@ -1198,7 +1198,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].live.quality == 4
|
|
|
|
|
|
|
|
|
|
def test_default_live(self):
|
|
|
|
|
@@ -1220,7 +1220,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].live.quality == 8
|
|
|
|
|
|
|
|
|
|
def test_global_live_merge(self):
|
|
|
|
|
@@ -1246,7 +1246,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].live.quality == 7
|
|
|
|
|
assert runtime_config.cameras["back"].live.height == 480
|
|
|
|
|
|
|
|
|
|
@@ -1270,7 +1270,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].timestamp_style.position == "bl"
|
|
|
|
|
|
|
|
|
|
def test_default_timestamp_style(self):
|
|
|
|
|
@@ -1292,7 +1292,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].timestamp_style.position == "tl"
|
|
|
|
|
|
|
|
|
|
def test_global_timestamp_style_merge(self):
|
|
|
|
|
@@ -1317,7 +1317,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].timestamp_style.position == "bl"
|
|
|
|
|
assert runtime_config.cameras["back"].timestamp_style.thickness == 4
|
|
|
|
|
|
|
|
|
|
@@ -1341,7 +1341,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert runtime_config.cameras["back"].snapshots.retain.default == 1.5
|
|
|
|
|
|
|
|
|
|
def test_fails_on_bad_camera_name(self):
|
|
|
|
|
@@ -1365,7 +1365,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
|
|
|
|
|
self.assertRaises(
|
|
|
|
|
ValidationError, lambda: frigate_config.runtime_config.cameras
|
|
|
|
|
ValidationError, lambda: frigate_config.runtime_config().cameras
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def test_fails_on_bad_segment_time(self):
|
|
|
|
|
@@ -1392,7 +1392,8 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
|
|
|
|
|
self.assertRaises(
|
|
|
|
|
ValueError, lambda: frigate_config.runtime_config.ffmpeg.output_args.record
|
|
|
|
|
ValueError,
|
|
|
|
|
lambda: frigate_config.runtime_config().ffmpeg.output_args.record,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def test_fails_zone_defines_untracked_object(self):
|
|
|
|
|
@@ -1421,7 +1422,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
|
|
|
|
|
self.assertRaises(ValueError, lambda: frigate_config.runtime_config.cameras)
|
|
|
|
|
self.assertRaises(ValueError, lambda: frigate_config.runtime_config().cameras)
|
|
|
|
|
|
|
|
|
|
def test_fails_duplicate_keys(self):
|
|
|
|
|
raw_config = """
|
|
|
|
|
@@ -1465,7 +1466,7 @@ class TestConfig(unittest.TestCase):
|
|
|
|
|
frigate_config = FrigateConfig(**config)
|
|
|
|
|
assert config == frigate_config.dict(exclude_unset=True)
|
|
|
|
|
|
|
|
|
|
runtime_config = frigate_config.runtime_config
|
|
|
|
|
runtime_config = frigate_config.runtime_config()
|
|
|
|
|
assert "dog" in runtime_config.cameras["back"].objects.filters
|
|
|
|
|
assert runtime_config.cameras["back"].objects.filters["dog"].min_ratio == 0.2
|
|
|
|
|
assert runtime_config.cameras["back"].objects.filters["dog"].max_ratio == 10.1
|
|
|
|
|
|