{{ event.text }}{% if event.url %} Read more →{% endif %}
+Typical daily high and low, and average precipitation, for each month in {{ display }}, diff --git a/tests/test_content.py b/tests/test_content.py index 466aeff..b4f3c5e 100644 --- a/tests/test_content.py +++ b/tests/test_content.py @@ -60,6 +60,25 @@ def test_city_404(client): assert client.get(f"{B}/climate/nope-not-a-city").status_code == 404 +def test_curated_events_have_valid_slugs(): + import city_events + slugs = set(cities.all_slugs()) + assert len(city_events.EVENTS) >= 20 + assert all(s in slugs for s in city_events.EVENTS), \ + [s for s in city_events.EVENTS if s not in slugs] + + +def test_curated_event_renders(client): + b = client.get(f"{B}/climate/new-orleans-louisiana-us").text + assert "Notable weather in New Orleans" in b + assert "Hurricane Katrina" in b + + +def test_uncurated_city_has_no_event_section(client): + b = client.get(f"{B}/climate/shanghai-cn").text + assert "city-event" not in b # falls back to the flavor blurb + + def test_city_travel_cta_prefills_compare(client): b = client.get(f"{B}/climate/{SLUG}").text assert "Thinking of visiting" in b