INITIAL COMMIT
This commit is contained in:
45
tests/test_redact.py
Normal file
45
tests/test_redact.py
Normal file
@ -0,0 +1,45 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from garmin_coach_clone.redact import redact
|
||||
|
||||
|
||||
def test_redact_preserves_workout_schema_ids() -> None:
|
||||
data = {
|
||||
"stepType": {"stepTypeId": 1, "stepTypeKey": "warmup"},
|
||||
"targetType": {"workoutTargetTypeId": 1, "workoutTargetTypeKey": "no.target"},
|
||||
"endCondition": {"conditionTypeId": 2, "conditionTypeKey": "time"},
|
||||
}
|
||||
|
||||
assert redact(data) == data
|
||||
|
||||
|
||||
def test_redact_private_account_and_device_fields() -> None:
|
||||
data = {
|
||||
"email": "rider@example.com",
|
||||
"displayName": "Rider",
|
||||
"unitId": 123456,
|
||||
"ownerId": 999,
|
||||
"deviceId": 888,
|
||||
}
|
||||
|
||||
redacted = redact(data)
|
||||
|
||||
assert redacted["email"] == "<redacted>"
|
||||
assert redacted["displayName"] == "<redacted>"
|
||||
assert redacted["unitId"] == "<redacted>"
|
||||
assert redacted["ownerId"] == "<redacted>"
|
||||
assert redacted["deviceId"] == "<redacted>"
|
||||
|
||||
|
||||
def test_redact_sensitive_values_inside_strings() -> None:
|
||||
data = {
|
||||
"message": "Contact rider@example.com with Authorization: Bearer abc.def.ghi",
|
||||
}
|
||||
|
||||
redacted = redact(data)
|
||||
|
||||
assert "rider@example.com" not in redacted["message"]
|
||||
assert "abc.def.ghi" not in redacted["message"]
|
||||
assert "<redacted-email>" in redacted["message"]
|
||||
assert "Bearer <redacted-token>" in redacted["message"]
|
||||
|
||||
Reference in New Issue
Block a user