Skip to content

Commit 9af2465

Browse files
committed
Improve api_message when driver field not set for a race
1 parent 778b5c4 commit 9af2465

3 files changed

Lines changed: 426 additions & 27445 deletions

File tree

custom_components/teamtracker/event.py

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ async def async_process_event(
4040

4141
for event in events:
4242
event_state = "NOT_FOUND"
43-
43+
values["event_name"] = await async_get_value(
44+
data, "events", 0, "name", default=""
45+
)
4446
grouping_index = -1
4547
for grouping_index, grouping in enumerate(
4648
await async_get_value(event, "groupings", default=[])
@@ -474,20 +476,35 @@ async def competitor_not_found(
474476
API_LIMIT,
475477
search_key,
476478
)
477-
else:
478-
values["api_message"] = (
479-
"No competition scheduled for '"
480-
+ team_id
481-
+ "' between "
482-
+ first_date.strftime("%Y-%m-%dT%H:%MZ")
483-
+ " and "
484-
+ last_date.strftime("%Y-%m-%dT%H:%MZ")
485-
)
486-
_LOGGER.debug(
487-
"%s: No competitor information '%s' returned by API",
488-
sensor_name,
489-
search_key,
479+
return
480+
481+
if values["sport_path"] == "racing" and values["event_name"] is not None:
482+
competition = await async_get_value(
483+
values, "events", 0, "competitions", 0, "competitors", default=None
490484
)
485+
if competition is None:
486+
values["api_message"] = f"Driver not found. Field not set for race ({values['event_name']})"
487+
_LOGGER.debug(
488+
"%s: No drivers in race field for %s",
489+
sensor_name,
490+
values["event_name"]
491+
)
492+
return
493+
494+
values["api_message"] = (
495+
"No competition scheduled for '"
496+
+ team_id
497+
+ "' between "
498+
+ first_date.strftime("%Y-%m-%dT%H:%MZ")
499+
+ " and "
500+
+ last_date.strftime("%Y-%m-%dT%H:%MZ")
501+
)
502+
_LOGGER.debug(
503+
"%s: No competitor information '%s' returned by API",
504+
sensor_name,
505+
search_key,
506+
)
507+
491508
return
492509

493510

tests/test_sample.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ async def test_sample(hass, mock_call_espn_api, mocker):
5757
"""
5858

5959
SAMPLE_DATA = {
60-
"league_id": "EPL",
61-
"team_id": "MNC",
60+
"league_id": "NASCAR",
61+
"team_id": "Gordon",
6262
"name": "test_sample",
6363
"timeout": 120,
6464
"conference_id": "9999",
@@ -96,10 +96,10 @@ async def test_sample(hass, mock_call_espn_api, mocker):
9696
league_name = sensor_state.attributes.get("league_name")
9797
# assert league_name == "PGA TOUR"
9898
event_name = sensor_state.attributes.get("event_name")
99-
assert event_name == "MNC @ EVE"
99+
assert event_name == "NASCAR Cup Series at Texas"
100100
date = sensor_state.attributes.get("date")
101101
# assert date == "2026-04-23T04:00Z"
102102
api_url = sensor_state.attributes.get("api_url")
103103
# assert api_url == "http://site.api.espn.com/apis/site/v2/sports/golf/pga/scoreboard?lang=en&limit=50&dates=20260320-20260619&groups=9999"
104104
api_message = sensor_state.attributes.get("api_message")
105-
# assert api_message == None
105+
assert api_message == "Driver not found. Field not set for race (NASCAR Cup Series at Texas)"

0 commit comments

Comments
 (0)