Init
This commit is contained in:
44
tests/test_state.py
Normal file
44
tests/test_state.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from pathlib import Path
|
||||
|
||||
from mywhoosh_garmin_sync.state import ActivityStore
|
||||
|
||||
|
||||
def test_state_transitions_and_hash_lookup(tmp_path: Path):
|
||||
store = ActivityStore(tmp_path / "state.sqlite3")
|
||||
store.initialize()
|
||||
|
||||
store.record_downloaded(
|
||||
source_ref="source-1",
|
||||
title="Ride",
|
||||
source_url="https://example.test/ride.fit",
|
||||
raw_path=tmp_path / "raw.fit",
|
||||
raw_sha256="raw-hash",
|
||||
)
|
||||
assert store.get_status("source-1") == "downloaded"
|
||||
assert store.is_terminal_source("source-1") is False
|
||||
|
||||
store.mark_converted(
|
||||
source_ref="source-1",
|
||||
converted_path=tmp_path / "converted.fit",
|
||||
converted_sha256="converted-hash",
|
||||
patched_field_count=4,
|
||||
)
|
||||
assert store.get_status("source-1") == "converted"
|
||||
assert store.is_uploaded_hash("converted-hash") is False
|
||||
|
||||
store.mark_uploaded("source-1", "123")
|
||||
assert store.get_status("source-1") == "uploaded"
|
||||
assert store.is_terminal_source("source-1") is True
|
||||
assert store.is_uploaded_hash("raw-hash") is True
|
||||
assert store.is_uploaded_hash("converted-hash") is True
|
||||
|
||||
|
||||
def test_failed_activity_can_be_retried(tmp_path: Path):
|
||||
store = ActivityStore(tmp_path / "state.sqlite3")
|
||||
store.initialize()
|
||||
store.record_downloaded("source-1", "Ride", None, tmp_path / "raw.fit", "hash")
|
||||
store.mark_failed("source-1", "network failed")
|
||||
|
||||
assert store.get_status("source-1") == "failed"
|
||||
assert store.is_terminal_source("source-1") is False
|
||||
|
||||
Reference in New Issue
Block a user