Pipeline
This page lists all the test cases for this feature. Test cases are followed by an explanatory legend.
ποΈ Test cases
Coverage rate:
| Status | ID | Title |
|---|---|---|
| β Active | tc-pipe01 | Full import with currency handling |
| β Active | tc-pipe02 | CSV data cleaning and validation |
| β Active | tc-pipe03 | Synchronization of securities and deletion of obsolete ones |
| β Active | tc-pipe-fail01 | Corrupted CSV file handling |
| β Active | tc-pipe-date01 | Date logic verification (previous market day) |
| β Active | tc-pipe-csv01 | CSV quantities cleaning (<0.1, spaced numbers) |
| β Active | tc-pipe-nocsv01 | No CSV fallback when API key exists |
| β Active | tc-pipe-date02 | Monday morning catch-up allowed only after a recorded failure |
| β Active | tc-pipe-date03 | Monday run is blocked when no previous failure exists |
| β Active | tc-pipe-fail02 | Unexpected exceptions are persisted as failure state for next decisions |
| β Active | tc-pipe-quota01 | Quota mode classification boundaries (normal, eco, protection, blocked) |
| β Active | tc-pipe-quota02 | Blocked mode cancels API enrichment and emits a quota alert |
| β Active | tc-pipe-quota03 | Retry targets only missing securities and runs at most once |
| β Active | tc-pipe-quota04 | Eco mode disables retry without sending a quota alert |
| β Active | tc-pipe-quota05 | Protection mode disables retry and sends a distinct quota alert |
| β Active | tc-pipe-quota06 | Quota read fail-open on /v1/account timeout or error |
| β Active | tc-pipe-quota07 | Missing quota configuration falls back to defaults and logs the event |
| β Active | tc-pipe-quota08 | /v1/account is called before the first /v2/eod request |
| β Active | tc-pipe-quota09 | Invalid quota thresholds fall back to defaults and log invalid_thresholds |
| β Active | tc-pipe-quota10 | Mode transitions are logged through quota_mode_change between runs |
| β Active | tc-pipe-quota11 | When /v1/account is unavailable, the local monthly quota counter is used and updated |
| β Active | tc-pipe-smtp01 | STARTTLS mode uses SMTP transport with configured timeout |
| β Active | tc-pipe-smtp02 | SSL mode uses SMTP_SSL transport |
| β Active | tc-pipe-smtp03 | Invalid SMTP security mode is fail-open (no send attempt) |
| β Active | tc-pipe-smtp04 | Missing SMTP configuration is fail-open (no send attempt) |
| β Active | tc-pipe-smtp05 | Email content includes follow-up instructions (logs + documentation link) |
| β Active | tc-pipe-ticker01 | Ticker insertion succeeds for standard ticker length |
| β Active | tc-pipe-ticker02 | Ticker insertion succeeds at schema maximum length (255 chars) |
| β Active | tc-pipe-api01 | Marketstack API: Timeout resilience |
| β Active | tc-pipe-api02 | Marketstack API: HTTP 500 / Invalid JSON handling |
| β To Do | Import script: fail-fast when required DB env vars are missing (import_data.py) |
|
| β To Do | Import script: fail-fast on DB connection failure (import_data.py) |
|
| β To Do | Import script: fail-fast when source CSV is missing (import_data.py) |
|
| β To Do | Calendar guard: Sunday execution is blocked (run_full_pipeline) |
|
| β To Do | Monday gate: catch-up denied when conditions are not met (run_full_pipeline) |
|
| β To Do | Quota blocked mode: stop before enrichment and persist failure state | |
| β To Do | SMTP send failure: log smtp_alert_send_failure and continue fail-open |
|
| β To Do | Marketstack unrecoverable API error: trigger operator API alert path | |
| β To Do | Data Integrity: UPSERT / Idempotence check | |
| β To Do | Currency: USD to CAD conversion robustness |
Functional rate calculation for this page: 30 active / 40 defined = 75%.
β Coverage status legend
| Status | Description |
|---|---|
| β Active | The test case is implemented and validated by an automated pytest or Playwright test. |
| β To Do | The test case is defined but does not yet have a corresponding automated test. |