refactor: restructure as installable PyPI package

- Rename app/ → fragmentapi/ for proper package naming
- Add FragmentClient class with gift_premium, gift_stars, topup_ton methods
- Restructure core/ → types/ (exceptions, results, constants)
- Merge utils/hash.py into utils/client.py
- Replace _version.py with importlib.metadata
- Add input validation with min/max bounds
- Add unit tests: decode, client init/cookies
- Rename 002_test_hash → 003_test_hash
- Clean up pyproject.toml: pin deps, production classifiers
This commit is contained in:
bohd4nx
2026-03-15 21:03:03 +02:00
parent 4e017cb7a1
commit d2d046a2b9
38 changed files with 1051 additions and 959 deletions
+10 -6
View File
@@ -1,13 +1,17 @@
import pytest
import json
from pathlib import Path
from app.core.cookies import load_cookies
from app.core.exceptions import CookiesError
import pytest
@pytest.fixture
def cookies():
"""Load Fragment cookies; skip the test if they are unavailable."""
"""Load Fragment cookies from cookies.json; skip the test if unavailable."""
cookies_path = Path(__file__).resolve().parents[1] / "cookies.json"
if not cookies_path.exists():
pytest.skip("cookies.json not found")
try:
return load_cookies()
except CookiesError as exc:
with cookies_path.open("r", encoding="utf-8") as f:
return json.load(f)
except Exception as exc:
pytest.skip(f"Cookies unavailable — {exc}")