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-date04 | Calendar guard: Sunday execution is blocked |
| β Active | tc-pipe-fail02 | Unexpected exceptions are persisted as failure state for next decisions |
| β Active | tc-pipe-integrity01 | Historique schema rejects a second price for the same security on the same date |
| β Active | tc-pipe-integrity02 | Re-importing the same date updates the existing row instead of duplicating it |
| β Active | tc-pipe-fx01 | USD prices are converted to CAD while CAD prices are left untouched |
| β Active | tc-pipe-catchup01 | Catch-up calendar skips weekends between two dates |
| β Active | tc-pipe-catchup02 | Catch-up calendar returns an empty list when the range is already up to date |
| β 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 | 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 |
Functional rate calculation for this page: 36 active / 42 defined = 86%.
β 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. |