import goodnews.email_send as es class _FakeSMTP: last = {} def __init__(self, *a, **k): pass def __enter__(self): return self def __exit__(self, *a): return False def ehlo(self): pass def starttls(self, context=None): pass def login(self, *a): pass def send_message(self, msg): _FakeSMTP.last = {"To": msg["To"], "Reply-To": msg["Reply-To"], "From": msg["From"]} def _arm(monkeypatch): monkeypatch.setenv("GOODNEWS_SMTP_HOST", "smtp.example.com") monkeypatch.setattr(es.smtplib, "SMTP", _FakeSMTP) def test_reply_to_uses_env_inbox(monkeypatch): _arm(monkeypatch) monkeypatch.setenv("GOODNEWS_REPLY_TO_EMAIL", "inbox@upbeatbytes.com") es.send_feedback_reply("reader@x.com", "hello", "
hello
", "original?") assert _FakeSMTP.last["Reply-To"] == "inbox@upbeatbytes.com" assert _FakeSMTP.last["To"] == "reader@x.com" # reader is recipient assert _FakeSMTP.last["Reply-To"] != "reader@x.com" # never the reader def test_reply_to_falls_back_to_from(monkeypatch): _arm(monkeypatch) monkeypatch.delenv("GOODNEWS_REPLY_TO_EMAIL", raising=False) monkeypatch.setenv("GOODNEWS_SMTP_FROM", "upbeatBytes