TradingAgents/tests/unit
Andrew Kaszubski b6eca9ea07 feat(alerts): add SMS channel with Twilio integration - Issue #41 (59 tests)
Implements SMS alert delivery using Twilio API:
- SMSFormat enum (plain, compact, detailed)
- SMSStatus enum (queued, sending, sent, delivered, failed, etc.)
- SMSConfig for Twilio credentials and settings
- SMSMessageResult for delivery tracking
- SMSBatchResult for multi-recipient sends
- SMSMessageFormatter with priority indicators
- SMSChannel implementing AlertChannel protocol
- create_sms_channel factory function

Features:
- E.164 phone number validation
- Three formatting styles (plain, compact, detailed)
- Priority indicators ([!], [!!!]) for high/critical alerts
- Category prefixes (TRD, RSK, SYS, MKT, etc.)
- SMS segment counting (GSM-7 vs Unicode)
- Messaging service SID support
- Priority filtering (send only HIGH+ alerts)
- Batch sending to multiple recipients
- Retry logic with exponential backoff
- Server error retry vs client error fail-fast
- Latency tracking for performance monitoring
- Status callback URL support
- Connection test functionality

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:48:00 +11:00
..
agents feat(agents): add Position Sizing Manager with Kelly and risk parity - Fixes #16 2025-12-26 17:39:20 +11:00
alerts feat(alerts): add SMS channel with Twilio integration - Issue #41 (59 tests) 2025-12-26 22:48:00 +11:00
api feat(portfolio): add Portfolio State for holdings and mark-to-market - Issue #29 (68 tests) 2025-12-26 21:37:17 +11:00
dataflows feat(dataflows): add data caching layer with rate limit awareness - Fixes #12 2025-12-26 16:51:48 +11:00
execution feat(execution): add Risk Controls for pre-trade validation - Issue #28 (45 tests) 2025-12-26 21:29:14 +11:00
graph feat(graph): integrate new analysts into workflow - Fixes #17 2025-12-26 20:11:28 +11:00
memory feat(memory): add memory integration for agent prompts - Fixes #21 2025-12-26 20:40:21 +11:00
portfolio feat(portfolio): add Australian CGT Calculator with 50% discount - Issue #32 (66 tests) 2025-12-26 21:53:27 +11:00
simulation feat(simulation): add Economic Conditions for regime tagging and evaluation - Issue #35 (53 tests) 2025-12-26 22:13:34 +11:00
strategy feat(strategy): add Strategy Executor for end-to-end orchestration - Issue #37 (37 tests) 2025-12-26 22:29:20 +11:00
__init__.py feat(tests): add pytest conftest.py hierarchy with shared fixtures - Fixes #49 2025-12-26 10:40:30 +11:00
conftest.py feat(tests): add pytest conftest.py hierarchy with shared fixtures - Fixes #49 2025-12-26 10:40:30 +11:00
test_conftest_hierarchy.py feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50 2025-12-26 11:04:20 +11:00
test_documentation_structure.py feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50 2025-12-26 11:04:20 +11:00
test_exceptions.py feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50 2025-12-26 11:04:20 +11:00
test_logging_config.py feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50 2025-12-26 11:04:20 +11:00
test_output_validators.py feat(tests): add UAT and evaluation tests for agent outputs - Fixes #53 2025-12-26 11:38:37 +11:00
test_report_exporter.py feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50 2025-12-26 11:04:20 +11:00