mirror of
https://github.com/azaion/detections.git
synced 2026-06-22 09:31:08 +00:00
Added camera config
This commit is contained in:
@@ -61,7 +61,9 @@ def test_merged_annotation_settings_pascal_case():
|
||||
# Assert
|
||||
assert out["frame_period_recognition"] == 5
|
||||
assert out["probability_threshold"] == 0.4
|
||||
assert out["altitude"] == 300
|
||||
assert out["camera_config"]["current_height"] == 300
|
||||
assert out["camera_config"]["focal_length"] == 35
|
||||
assert out["camera_config"]["sensor_width"] == 36
|
||||
|
||||
|
||||
def test_merged_annotation_nested_sections():
|
||||
@@ -76,7 +78,7 @@ def test_merged_annotation_nested_sections():
|
||||
out = _merged_annotation_settings_payload(raw)
|
||||
# Assert
|
||||
assert out["model_batch_size"] == 4
|
||||
assert out["altitude"] == 100
|
||||
assert out["camera_config"]["current_height"] == 100
|
||||
|
||||
|
||||
def test_resolve_media_for_detect_uses_api_path_and_defaults_when_api_empty():
|
||||
@@ -105,7 +107,7 @@ def test_resolve_media_for_detect_override_wins():
|
||||
mock_ann = MagicMock()
|
||||
mock_ann.fetch_user_ai_settings.return_value = {
|
||||
"probabilityThreshold": 0.2,
|
||||
"altitude": 500,
|
||||
"camera_config": {"current_height": 500},
|
||||
}
|
||||
mock_ann.fetch_media_path.return_value = "/m/v.mp4"
|
||||
with patch("main.annotations_client", mock_ann):
|
||||
@@ -113,11 +115,42 @@ def test_resolve_media_for_detect_override_wins():
|
||||
cfg, path = main._resolve_media_for_detect("vid-1", tm, override)
|
||||
# Assert
|
||||
assert cfg["probability_threshold"] == 0.99
|
||||
assert cfg["altitude"] == 500
|
||||
assert cfg["camera_config"]["current_height"] == 500
|
||||
assert path == "/m/v.mp4"
|
||||
assert "paths" not in cfg
|
||||
|
||||
|
||||
def test_resolve_media_for_detect_merges_camera_config_override():
|
||||
# Arrange
|
||||
import main
|
||||
|
||||
tm = main.TokenManager(_access_jwt(), "")
|
||||
override = main.AIConfigDto(
|
||||
camera_config=main.CameraConfigDto(current_height=500)
|
||||
)
|
||||
mock_ann = MagicMock()
|
||||
mock_ann.fetch_user_ai_settings.return_value = {
|
||||
"camera_config": {
|
||||
"focal_length": 35,
|
||||
"sensor_width": 36,
|
||||
"current_zoom": 2,
|
||||
"current_angle": 80,
|
||||
"current_height": 300,
|
||||
}
|
||||
}
|
||||
mock_ann.fetch_media_path.return_value = "/m/v.mp4"
|
||||
with patch("main.annotations_client", mock_ann):
|
||||
# Act
|
||||
cfg, path = main._resolve_media_for_detect("vid-1", tm, override)
|
||||
# Assert
|
||||
assert cfg["camera_config"]["current_height"] == 500
|
||||
assert cfg["camera_config"]["focal_length"] == 35
|
||||
assert cfg["camera_config"]["sensor_width"] == 36
|
||||
assert cfg["camera_config"]["current_zoom"] == 2
|
||||
assert cfg["camera_config"]["current_angle"] == 80
|
||||
assert path == "/m/v.mp4"
|
||||
|
||||
|
||||
def test_resolve_media_for_detect_omits_altitude_when_not_provided():
|
||||
# Arrange
|
||||
import main
|
||||
@@ -130,7 +163,7 @@ def test_resolve_media_for_detect_omits_altitude_when_not_provided():
|
||||
# Act
|
||||
cfg, path = main._resolve_media_for_detect("vid-2", tm, None)
|
||||
# Assert
|
||||
assert "altitude" not in cfg
|
||||
assert "camera_config" not in cfg
|
||||
assert cfg["probability_threshold"] == 0.2
|
||||
assert path == "/m/v.mp4"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user