import os import pytest from garmin.workout_manager import WorkoutManager @pytest.fixture def temp_workout_dir(tmp_path): d = tmp_path / "workouts" d.mkdir() return str(d) @pytest.fixture def manager(temp_workout_dir): return WorkoutManager(storage_dir=temp_workout_dir) def test_list_local_workouts_empty(manager): assert manager.list_local_workouts() == [] def test_save_and_load_local_workout(manager): workout = {"workoutName": "Test"} filename = manager.save_local_workout("test_run", workout) # Check return val assert filename == "test_run.json" # Check file exists assert os.path.exists(os.path.join(manager.storage_dir, "test_run.json")) # Check list assert "test_run.json" in manager.list_local_workouts() # Check load loaded = manager.load_local_workout("test_run") assert loaded["workoutName"] == "Test" def test_load_non_existent(manager): with pytest.raises(FileNotFoundError): manager.load_local_workout("fake") # API Tests # We rely on integration tests for full API coverage.