Tests cover providers, dedup, Telegram, scoring, main runner, and Airbnb stubs. Ticketmaster and SeatGeek use configurable lat/lon/radius (Thornhill default). Pipeline filters noise listings, merges same-day sports duplicates, optional MIN_ALERT_SCORE, and Telegram severity summary. Made-with: Cursor
106 lines
3.0 KiB
Python
106 lines
3.0 KiB
Python
"""Shared fixtures for all tests."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import date
|
|
|
|
import pytest
|
|
|
|
from src.models import NormalizedEvent
|
|
|
|
|
|
@pytest.fixture()
|
|
def sample_event() -> NormalizedEvent:
|
|
return NormalizedEvent(
|
|
name="Toronto Raptors vs Boston Celtics",
|
|
event_date=date(2026, 5, 10),
|
|
venue="Scotiabank Arena",
|
|
source="ticketmaster",
|
|
url="https://example.com/raptors",
|
|
)
|
|
|
|
|
|
@pytest.fixture()
|
|
def sample_events() -> list[NormalizedEvent]:
|
|
return [
|
|
NormalizedEvent(
|
|
name="Toronto Raptors vs Boston Celtics",
|
|
event_date=date(2026, 5, 10),
|
|
venue="Scotiabank Arena",
|
|
source="ticketmaster",
|
|
url="https://example.com/raptors",
|
|
),
|
|
NormalizedEvent(
|
|
name="Blue Jays vs Yankees",
|
|
event_date=date(2026, 5, 12),
|
|
venue="Rogers Centre",
|
|
source="seatgeek",
|
|
url="https://example.com/jays",
|
|
),
|
|
NormalizedEvent(
|
|
name="Drake Concert",
|
|
event_date=date(2026, 5, 15),
|
|
venue="Budweiser Stage",
|
|
source="ticketmaster",
|
|
url="https://example.com/drake",
|
|
),
|
|
]
|
|
|
|
|
|
TICKETMASTER_RESPONSE = {
|
|
"_embedded": {
|
|
"events": [
|
|
{
|
|
"name": "Toronto Raptors vs Boston Celtics",
|
|
"dates": {"start": {"localDate": "2026-05-10"}},
|
|
"url": "https://www.ticketmaster.ca/raptors",
|
|
"_embedded": {
|
|
"venues": [{"name": "Scotiabank Arena"}]
|
|
},
|
|
},
|
|
{
|
|
"name": "Blue Jays vs Yankees",
|
|
"dates": {"start": {"localDate": "2026-05-12"}},
|
|
"url": "https://www.ticketmaster.ca/jays",
|
|
"_embedded": {
|
|
"venues": [{"name": "Rogers Centre"}]
|
|
},
|
|
},
|
|
{
|
|
"name": "Indie Band at Horseshoe",
|
|
"dates": {"start": {"localDate": "2026-05-11"}},
|
|
"url": "https://www.ticketmaster.ca/indie",
|
|
"_embedded": {
|
|
"venues": [{"name": "Horseshoe Tavern"}]
|
|
},
|
|
},
|
|
]
|
|
}
|
|
}
|
|
|
|
SEATGEEK_RESPONSE = {
|
|
"events": [
|
|
{
|
|
"title": "Raptors vs Celtics",
|
|
"datetime_local": "2026-05-10T19:30:00",
|
|
"venue": {"name": "Scotiabank Arena"},
|
|
"url": "https://seatgeek.com/raptors",
|
|
"score": 0.85,
|
|
},
|
|
{
|
|
"title": "Drake Concert",
|
|
"datetime_local": "2026-05-15T20:00:00",
|
|
"venue": {"name": "Budweiser Stage"},
|
|
"url": "https://seatgeek.com/drake",
|
|
"score": 0.72,
|
|
},
|
|
{
|
|
"title": "Local Open Mic",
|
|
"datetime_local": "2026-05-14T21:00:00",
|
|
"venue": {"name": "The Rex"},
|
|
"url": "https://seatgeek.com/openmic",
|
|
"score": 0.1,
|
|
},
|
|
]
|
|
}
|