34 lines
932 B
Python
34 lines
932 B
Python
from bincio.extract.writer import make_activity_id, _slugify
|
|
from bincio.extract.models import ParsedActivity, DataPoint
|
|
from datetime import datetime, timezone
|
|
|
|
|
|
def _dummy_activity(title=None):
|
|
ts = datetime(2024, 6, 1, 7, 30, 12, tzinfo=timezone.utc)
|
|
return ParsedActivity(
|
|
points=[DataPoint(timestamp=ts)],
|
|
sport="cycling",
|
|
started_at=ts,
|
|
source_file="test.fit",
|
|
source_hash="sha256:abc",
|
|
title=title,
|
|
)
|
|
|
|
|
|
def test_id_with_title():
|
|
act = _dummy_activity("Morning Ride")
|
|
aid = make_activity_id(act)
|
|
assert aid == "2024-06-01T073012Z-morning-ride"
|
|
|
|
|
|
def test_id_without_title():
|
|
act = _dummy_activity()
|
|
aid = make_activity_id(act)
|
|
assert aid == "2024-06-01T073012Z"
|
|
|
|
|
|
def test_slugify():
|
|
assert _slugify("Morning Ride!") == "morning-ride"
|
|
assert _slugify(" Vélo ") == "velo" # é → e via NFKD + ASCII
|
|
assert _slugify("") == ""
|