FitMop/backend/tests/test_workout_local.py

46 lines
1.1 KiB
Python

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.