40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from flashops_control.safety import PreflightRequest, run_preflight
|
|
|
|
|
|
def valid_request(**overrides):
|
|
values = {
|
|
"expected_serial": "DUT-001",
|
|
"discovered_serial": "DUT-001",
|
|
"allow_destructive": True,
|
|
"device_path": "/dev/nvme1n1",
|
|
"system_device_paths": ["/dev/nvme0n1", "/dev/nvme0n1p2"],
|
|
"firmware_model_allowed": True,
|
|
"host_online": True,
|
|
"oob_online": True,
|
|
}
|
|
values.update(overrides)
|
|
return PreflightRequest(**values)
|
|
|
|
|
|
def test_all_safety_gates_pass_for_bound_test_disk():
|
|
result = run_preflight(valid_request())
|
|
assert result.passed is True
|
|
assert len(result.checks) == 6
|
|
|
|
|
|
def test_serial_mismatch_is_rejected():
|
|
result = run_preflight(valid_request(discovered_serial="WRONG-DISK"))
|
|
assert result.passed is False
|
|
assert next(check for check in result.checks if check.key == "serial").passed is False
|
|
|
|
|
|
def test_system_partition_is_rejected():
|
|
result = run_preflight(valid_request(device_path="/dev/nvme0n1p2"))
|
|
assert result.passed is False
|
|
assert next(check for check in result.checks if check.key == "system_disk").passed is False
|
|
|
|
|
|
def test_destructive_opt_in_is_required():
|
|
result = run_preflight(valid_request(allow_destructive=False))
|
|
assert result.passed is False
|