Skip to content

validate_action rejects explicitly expected HTTP error statuses #373

Description

@Calmingstorm

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions