from datetime import datetime from web.email_templates import render_job_alert_email def test_render_job_alert_email_with_jobs(): jobs = [ { "title": "Python Developer", "company": "Acme", "location": "Remote", "url": "https://example.com/jobs/1", }, { "title": "Data Engineer", "company": "Globex", "location": "NYC", "url": "https://example.com/jobs/2", }, ] ts = datetime(2025, 11, 3, 12, 0) rendered = render_job_alert_email( jobs, region="sfbay", keyword="python", generated_at=ts) assert rendered["subject"] == "2 new jobs (region: sfbay, keyword: python)" assert "1. Python Developer" in rendered["body"] assert "Generated at 2025-11-03 12:00 UTC." in rendered["body"] assert rendered["context"]["count"] == 2 assert rendered["context"]["jobs_section"].startswith( "\n1. Python Developer") def test_render_job_alert_email_empty(): ts = datetime(2025, 11, 3, 12, 0) rendered = render_job_alert_email([], generated_at=ts) assert rendered["subject"] == "No new jobs" assert "No jobs matched this alert." in rendered["body"] assert rendered["body"].count("Generated at") == 1 assert rendered["context"]["count"] == 0