You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
from pathlib import Path
|
|
import sys
|
|
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
if str(PROJECT_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(PROJECT_ROOT))
|
|
|
|
from runtime_env import apply_config_env_overrides, apply_intercept_env_overrides
|
|
|
|
|
|
def test_apply_config_env_overrides_parses_source_device_and_flags(monkeypatch):
|
|
namespace = {
|
|
"SOURCE": "video.mp4",
|
|
"MODEL_PATH": "best.pt",
|
|
"SHOW_OUTPUT": True,
|
|
"SAVE_INFER_VIDEO": True,
|
|
"OUT_VIDEO_PATH": "out.mp4",
|
|
}
|
|
|
|
monkeypatch.setenv("FPV_SOURCE", "0")
|
|
monkeypatch.setenv("FPV_MODEL_PATH", "/models/best.pt")
|
|
monkeypatch.setenv("FPV_SHOW_OUTPUT", "false")
|
|
monkeypatch.setenv("FPV_SAVE_INFER_VIDEO", "0")
|
|
monkeypatch.setenv("FPV_OUT_VIDEO_PATH", "/outputs/run.mp4")
|
|
|
|
apply_config_env_overrides(namespace)
|
|
|
|
assert namespace["SOURCE"] == 0
|
|
assert namespace["MODEL_PATH"] == "/models/best.pt"
|
|
assert namespace["SHOW_OUTPUT"] is False
|
|
assert namespace["SAVE_INFER_VIDEO"] is False
|
|
assert namespace["OUT_VIDEO_PATH"] == "/outputs/run.mp4"
|
|
|
|
|
|
def test_apply_intercept_env_overrides_switches_to_proto_udp(monkeypatch):
|
|
namespace = {
|
|
"AUTOPILOT_ENABLE": True,
|
|
"AUTOPILOT_BACKEND": "json",
|
|
"PROTO_UDP_ENABLE": False,
|
|
"PROTO_UDP_HOST": "127.0.0.1",
|
|
"PROTO_UDP_PORT": 5005,
|
|
}
|
|
|
|
monkeypatch.setenv("FPV_AUTOPILOT_ENABLE", "true")
|
|
monkeypatch.setenv("FPV_AUTOPILOT_BACKEND", "proto_udp")
|
|
monkeypatch.setenv("FPV_PROTO_UDP_ENABLE", "1")
|
|
monkeypatch.setenv("FPV_PROTO_UDP_HOST", "192.168.0.55")
|
|
monkeypatch.setenv("FPV_PROTO_UDP_PORT", "6001")
|
|
|
|
apply_intercept_env_overrides(namespace)
|
|
|
|
assert namespace["AUTOPILOT_ENABLE"] is True
|
|
assert namespace["AUTOPILOT_BACKEND"] == "proto_udp"
|
|
assert namespace["PROTO_UDP_ENABLE"] is True
|
|
assert namespace["PROTO_UDP_HOST"] == "192.168.0.55"
|
|
assert namespace["PROTO_UDP_PORT"] == 6001
|