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