Skip to content

Commit 30f93cc

Browse files
cyberjunkyayazhankadessovaclaude
committed
Add regression tests for workout constant IDs (#333)
Pin TargetType, StepType, ConditionType, and SportType enum values to their expected Garmin API IDs to prevent silent drift. Based on PR #340 by @ayazhankadessova — rebased onto current master. Co-Authored-By: ayazhankadessova <ayazhankadessova@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 69b5002 commit 30f93cc

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

tests/test_workout_constants.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"""Regression tests pinning workout constant IDs to Garmin API values.
2+
3+
Prevents silent drift of constant values (see issue #333).
4+
"""
5+
6+
from garminconnect.workout import ConditionType, SportType, StepType, TargetType
7+
8+
9+
def test_target_type_ids() -> None:
10+
"""Pin TargetType IDs to match Garmin API values (issue #333)."""
11+
assert TargetType.NO_TARGET == 1
12+
assert TargetType.POWER == 2
13+
assert TargetType.CADENCE == 3
14+
assert TargetType.HEART_RATE == 4
15+
assert TargetType.SPEED == 5
16+
assert TargetType.OPEN == 6
17+
18+
19+
def test_step_type_ids() -> None:
20+
"""Pin StepType IDs to match Garmin API values."""
21+
assert StepType.WARMUP == 1
22+
assert StepType.COOLDOWN == 2
23+
assert StepType.INTERVAL == 3
24+
assert StepType.RECOVERY == 4
25+
assert StepType.REST == 5
26+
assert StepType.REPEAT == 6
27+
28+
29+
def test_condition_type_ids() -> None:
30+
"""Pin ConditionType IDs to match Garmin API values."""
31+
assert ConditionType.DISTANCE == 1
32+
assert ConditionType.TIME == 2
33+
assert ConditionType.HEART_RATE == 3
34+
assert ConditionType.CALORIES == 4
35+
assert ConditionType.CADENCE == 5
36+
assert ConditionType.POWER == 6
37+
assert ConditionType.ITERATIONS == 7
38+
39+
40+
def test_sport_type_ids() -> None:
41+
"""Pin SportType IDs to match Garmin API values."""
42+
assert SportType.RUNNING == 1
43+
assert SportType.CYCLING == 2
44+
assert SportType.SWIMMING == 3
45+
assert SportType.WALKING == 4
46+
assert SportType.MULTI_SPORT == 5
47+
assert SportType.FITNESS_EQUIPMENT == 6
48+
assert SportType.HIKING == 7
49+
assert SportType.OTHER == 8

0 commit comments

Comments
 (0)