This commit is contained in:
Bastian Wagner
2026-05-05 19:26:43 +02:00
commit 8d07939527
29 changed files with 2646 additions and 0 deletions

58
tests/test_mywhoosh.py Normal file
View File

@@ -0,0 +1,58 @@
from mywhoosh_garmin_sync.mywhoosh import (
_looks_like_challenge_text,
_looks_like_challenge_url,
_looks_like_cookie_accept_label,
_source_ref,
_storage_restore_script,
)
def test_cookie_accept_label_matching():
assert _looks_like_cookie_accept_label("Accept")
assert _looks_like_cookie_accept_label("Accept all cookies")
assert _looks_like_cookie_accept_label("Allow all")
assert _looks_like_cookie_accept_label("I agree")
assert _looks_like_cookie_accept_label("Got it")
assert not _looks_like_cookie_accept_label("Reject all")
assert not _looks_like_cookie_accept_label("Download app")
def test_challenge_text_matching():
assert _looks_like_challenge_text("I'm not a robot")
assert _looks_like_challenge_text("Verify you are human")
assert _looks_like_challenge_text("iframe title recaptcha")
assert _looks_like_challenge_text("Cloudflare security check")
assert not _looks_like_challenge_text("Welcome to your activities")
def test_challenge_url_matching_does_not_flag_plain_login():
assert _looks_like_challenge_url("https://example.test/cdn-cgi/challenge-platform")
assert _looks_like_challenge_url("https://example.test/verify")
assert not _looks_like_challenge_url("https://event.mywhoosh.com/login/")
assert not _looks_like_challenge_url("https://event.mywhoosh.com/user/activities")
def test_source_ref_prefers_href_then_row_text():
assert _source_ref("https://example.test/a.fit", "Download", 0, "Ride A") == _source_ref(
"https://example.test/a.fit", "Download", 99, "Ride B"
)
assert _source_ref(None, "", 0, "Ride A") != _source_ref(None, "", 1, "Ride B")
def test_storage_restore_script_contains_session_storage():
script = _storage_restore_script(
[
{
"origin": "https://event.mywhoosh.com",
"localStorage": [{"name": "token", "value": "local"}],
"sessionStorage": [{"name": "session-token", "value": "session"}],
}
]
)
assert "https://event.mywhoosh.com" in script
assert "localStorage" in script
assert "sessionStorage" in script