imap: accept Schwab subdomain senders (donotreply@mail.schwab.com)
Real Schwab trade-execution emails come from donotreply@mail.schwab.com, not the root @schwab.com domain. The existing matcher's endswith("@schwab.com") guard rejected these, silently skipping the May 2026 RSU vest's same-day-sell confirmation. Extend the matcher to also accept any *.schwab.com subdomain. Added test_schwab_subdomain_sender_matches; full suite green.
This commit is contained in:
parent
98c4729622
commit
d860aef927
2 changed files with 20 additions and 1 deletions
|
|
@ -99,3 +99,18 @@ def test_non_ie_activities_passed_through_unchanged() -> None:
|
|||
routed = _split_ie_by_isa_cap([schwab_act])
|
||||
assert routed[0].account_id == "schwab-workplace"
|
||||
assert routed[0].account_type is AccountType.GIA
|
||||
|
||||
|
||||
def test_schwab_subdomain_sender_matches() -> None:
|
||||
"""Real Schwab trade emails come from `donotreply@mail.schwab.com`
|
||||
(subdomain), not just `donotreply@schwab.com`. The matcher must
|
||||
accept either form."""
|
||||
from broker_sync.providers.imap import _SCHWAB_SENDERS
|
||||
# Verify the static set works
|
||||
assert "donotreply@schwab.com" in _SCHWAB_SENDERS
|
||||
# Verify the subdomain suffix check
|
||||
for addr in (
|
||||
"donotreply@mail.schwab.com",
|
||||
"wealthnotify@equityawards.schwab.com",
|
||||
):
|
||||
assert addr.endswith(".schwab.com"), addr
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue