test: add pytest test files (were missing from previous commit)

This commit is contained in:
bohd4nx
2026-03-05 04:18:55 +02:00
parent 5dc3cddf1a
commit f57f8271c3
4 changed files with 63 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
"""Tests for clean_decode() — BOC-encoded Fragment payloads decode to
human-readable UTF-8 with the Telegram label and Ref# intact."""
import re
import pytest
from app.utils.decoder import clean_decode
PAYLOADS = [
pytest.param(
"te6ccgEBAgEALwABTgAAAAAxMDAwMDAwIFRlbGVncmFtIFN0YXJzIAoKUmVmI1RQb01wegEABkM3ZQ",
id="stars",
),
pytest.param(
"te6ccgEBAgEANAABTgAAAABUZWxlZ3JhbSBQcmVtaXVtIGZvciAxIHllYXIgCgpSZWYjcgEAEE9OQnM2cmNt",
id="premium",
),
pytest.param(
"te6ccgEBAgEAMAABTgAAAABUZWxlZ3JhbSBhY2NvdW50IHRvcCB1cCAKClJlZiNrMXpDRQEACFkxd3g",
id="topup",
),
]
@pytest.mark.parametrize("payload", PAYLOADS)
def test_payload(payload: str) -> None:
result = clean_decode(payload)
assert "Telegram" in result
assert re.search(r"Ref#[A-Za-z0-9]+", result), f"no Ref# in {result!r}"
assert all(ord(c) <= 127 for c in result), f"non-ASCII chars in {result!r}"
def test_empty_input_returns_string() -> None:
assert isinstance(clean_decode(""), str)
+16
View File
@@ -0,0 +1,16 @@
"""Tests for get_fragment_hash() — fetches a valid lowercase hex hash
from the fragment.com/stars/buy page source."""
import re
import pytest
from app.core.constants import BASE_HEADERS, STARS_PAGE
from app.utils.hash import get_fragment_hash
@pytest.mark.asyncio
async def test_hash_is_valid_hex(cookies: dict) -> None:
result = await get_fragment_hash(cookies, BASE_HEADERS, STARS_PAGE)
assert isinstance(result, str)
assert len(result) >= 10, f"hash too short: {result!r}"
assert re.fullmatch(r"[a-f0-9]+", result), f"not a hex string: {result!r}"
View File
+13
View File
@@ -0,0 +1,13 @@
import pytest
from app.core.cookies import load_cookies
from app.core.exceptions import CookiesError
@pytest.fixture
def cookies():
"""Load Fragment cookies, skip the test if they are unavailable."""
try:
return load_cookies()
except CookiesError as exc:
pytest.skip(f"Cookies unavailable — {exc}")