mirror of
https://github.com/sstent/FitTrack_GarminSync.git
synced 2026-01-25 08:35:23 +00:00
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import uuid
|
|
from datetime import datetime
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from src.jobs import JobStore, SyncJob
|
|
from src.services.sync_status_service import SyncStatusService
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_job_store():
|
|
"""Fixture to create a mock JobStore."""
|
|
job_store = MagicMock(spec=JobStore)
|
|
job_id = uuid.uuid4()
|
|
job = SyncJob(id=str(job_id), status="completed", created_at=datetime.utcnow())
|
|
job_store.get_all_jobs.return_value = [job]
|
|
job_store.get_job.return_value = job
|
|
return job_store
|
|
|
|
def test_get_sync_jobs_all(mock_job_store):
|
|
"""Test retrieving all sync jobs."""
|
|
service = SyncStatusService(job_store=mock_job_store)
|
|
jobs = service.get_sync_jobs()
|
|
assert len(jobs) == 1
|
|
mock_job_store.get_all_jobs.assert_called_once()
|
|
|
|
def test_get_sync_job_by_id(mock_job_store):
|
|
"""Test retrieving a single sync job by ID."""
|
|
service = SyncStatusService(job_store=mock_job_store)
|
|
job_id = mock_job_store.get_job.return_value.id
|
|
# The get_sync_jobs implementation filters all jobs, so we need to mock get_all_jobs
|
|
mock_job_store.get_all_jobs.return_value = [mock_job_store.get_job.return_value]
|
|
jobs = service.get_sync_jobs(job_id=job_id)
|
|
assert len(jobs) == 1
|
|
assert jobs[0].id == str(job_id)
|