mirror of
https://github.com/bohd4nx/FragmentAPI.git
synced 2026-07-25 06:14:29 +00:00
efcdda6b74
- Migrate from tonutils 0.5.x to 2.0.0 API: - ToncenterClient → TonapiClient with NetworkGlobalID - tonutils.client → tonutils.clients - tonutils.wallet → tonutils.contracts.wallet - pub_key.as_hex property, wallet.balance nanotons - async with client context manager - Centralize TON client init into initialize_ton_client() in wallet.py - Move process_transaction logic into wallet.py, transaction.py re-exports - Add WALLET_VERSION config (V4R2/V5R1, default V5R1) - Add WALLET_CLASSES and SUPPORTED_WALLET_VERSIONS to constants.py - Restore balance check before broadcasting - Wait for seqno confirmation after transfer (120×2s) to prevent duplicate seqno - Fix Fragment hash fetching: use browser navigation headers - Remove accept-encoding from BASE_HEADERS (httpx handles decompression) - Add cookies.example.json template - Add cookies.json to .gitignore
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
"""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)
|