infoxtractor/tests/unit
Dirk Riemann dcd1bc764a
All checks were successful
tests / test (push) Successful in 56s
tests / test (pull_request) Successful in 1m7s
feat(pipeline): Step ABC + Pipeline runner + Timer (spec §3, §4)
Adds the transport-agnostic pipeline orchestrator. Each step implements
async validate + process; the runner wraps both in a Timer, writes
per-step entries to response.metadata.timings, and aborts on the first
IXException by writing response.error.

- Step exposes a step_name property (defaults to class name) so tests and
  logs label steps consistently.
- Timer is a plain context manager that appends one {step, elapsed_seconds}
  entry on exit regardless of whether the body raised, so the timeline
  stays reconstructable for failed steps.
- 9 unit tests cover ordering, skip-on-false, IXException in validate vs.
  process, timings populated for every executed step, and shared-response
  mutation across steps. Non-IX exceptions propagate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 11:06:46 +02:00
..
__init__.py feat(scaffold): project skeleton with uv + pytest + forgejo CI 2026-04-18 10:36:43 +02:00
test_contracts.py feat(contracts): ResponseIX + Provenance + Job envelope (spec §3, §9.3) 2026-04-18 10:50:22 +02:00
test_errors.py feat(errors): add IXException + IXErrorCode per spec §8 2026-04-18 10:46:01 +02:00
test_pipeline.py feat(pipeline): Step ABC + Pipeline runner + Timer (spec §3, §4) 2026-04-18 11:06:46 +02:00
test_provenance_mapper.py feat(provenance): mapper + verifier for ReliabilityStep (spec §9.4, §6) 2026-04-18 11:01:19 +02:00
test_provenance_normalize.py feat(provenance): normalisers + short-value skip rule (spec §6) 2026-04-18 10:56:31 +02:00
test_provenance_verify.py feat(provenance): mapper + verifier for ReliabilityStep (spec §9.4, §6) 2026-04-18 11:01:19 +02:00
test_scaffolding.py feat(scaffold): project skeleton with uv + pytest + forgejo CI 2026-04-18 10:36:43 +02:00
test_segment_index.py feat(segmentation): SegmentIndex + prompt-text formatter (spec §9.1) 2026-04-18 10:53:46 +02:00
test_use_case_bank_statement_header.py feat(use_cases): registry + bank_statement_header (spec §7) 2026-04-18 10:51:43 +02:00
test_use_case_registry.py feat(use_cases): registry + bank_statement_header (spec §7) 2026-04-18 10:51:43 +02:00