Confirmed mismatch with configured HTTP expectations
Reviewed master at 886c36d8ebe861aa987059a1744d45b78797baae (v4.7.0). Suggested priority: P2.
validate_action accepts an expected HTTP status or list, but its generated curl command uses -f. An explicitly expected HTTP 404 or 500 makes curl exit 22, appending failure text to the status, so the evaluator cannot match it.
Source: curl construction, expected-code comparison.
Wire-level reproduction
A disposable loopback HTTP fixture returns 404. Build and run Check(type="http", target=fixture_url, expected=404) using the real command builder and evaluator.
HTTP response: 404
output: 404FAILED_22
curl: (22) The requested URL returned error: 404
evaluated_status: fail
Expected: pass, because the requested response was received. Independently reproduced twice; no live endpoint was touched. Existing focused suite: 79 passed.
Acceptance criteria
- Capture status without curl's HTTP-error short circuit, and preserve genuine transport failures separately.
- Expected 404 passes; unexpected 404 fails; expected 500 passes; connection failure/timeout never passes as an HTTP result.
- Cover scalar and list expectations against actual fixture responses.
Behavior change: explicitly expected 4xx/5xx responses start passing as advertised. Default checks still reject them. No source changes were made.
Confirmed mismatch with configured HTTP expectations
Reviewed
masterat886c36d8ebe861aa987059a1744d45b78797baae(v4.7.0). Suggested priority: P2.validate_actionaccepts an expected HTTP status or list, but its generated curl command uses-f. An explicitly expected HTTP 404 or 500 makes curl exit 22, appending failure text to the status, so the evaluator cannot match it.Source: curl construction, expected-code comparison.
Wire-level reproduction
A disposable loopback HTTP fixture returns 404. Build and run
Check(type="http", target=fixture_url, expected=404)using the real command builder and evaluator.Expected: pass, because the requested response was received. Independently reproduced twice; no live endpoint was touched. Existing focused suite: 79 passed.
Acceptance criteria
Behavior change: explicitly expected 4xx/5xx responses start passing as advertised. Default checks still reject them. No source changes were made.