"""Tests for the NormalizedEvent model.""" from datetime import date from src.models import NormalizedEvent class TestNormalizedEvent: def test_create_event(self): event = NormalizedEvent( name="Test Event", event_date=date(2026, 6, 1), venue="Test Venue", source="test", ) assert event.name == "Test Event" assert event.event_date == date(2026, 6, 1) assert event.venue == "Test Venue" assert event.source == "test" assert event.url == "" assert event.score == 0.0 assert event.raw == {} def test_dedup_key_combines_date_and_lowered_venue(self): event = NormalizedEvent( name="Show", event_date=date(2026, 6, 1), venue="Scotiabank Arena", source="ticketmaster", ) assert event.dedup_key == "2026-06-01|scotiabank arena" def test_dedup_key_strips_whitespace(self): event = NormalizedEvent( name="Show", event_date=date(2026, 6, 1), venue=" Scotiabank Arena ", source="ticketmaster", ) assert event.dedup_key == "2026-06-01|scotiabank arena" def test_frozen_dataclass_prevents_mutation(self): event = NormalizedEvent( name="Show", event_date=date(2026, 6, 1), venue="Scotiabank Arena", source="ticketmaster", ) try: event.name = "Changed" # type: ignore[misc] assert False, "Should have raised FrozenInstanceError" except AttributeError: pass def test_equality_ignores_raw(self): e1 = NormalizedEvent( name="Show", event_date=date(2026, 6, 1), venue="Venue", source="a", raw={"x": 1}, ) e2 = NormalizedEvent( name="Show", event_date=date(2026, 6, 1), venue="Venue", source="a", raw={"y": 2}, ) assert e1 == e2