"""ECR-009: page/API smoke without requiring live provider during assert.""" from __future__ import annotations import os import sys import pytest # Ensure repo root + web on path like app.py _ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) _WEB = os.path.join(_ROOT, "web") for p in (_ROOT, _WEB): if p not in sys.path: sys.path.insert(0, p) os.environ.setdefault("CRYPTO_WYCKOFF_DISABLE", "1") @pytest.fixture() def client(): from app import create_app app = create_app() app.config["TESTING"] = True with app.test_client() as c: yield c def test_wyckoff_crypto_page_ok(client): resp = client.get("/wyckoff_crypto") assert resp.status_code == 200 assert b"Crypto Wyckoff Screener" in resp.data def test_wyckoff_crypto_meta_ok(client): resp = client.get("/api/wyckoff_crypto/meta") assert resp.status_code == 200 data = resp.get_json() assert "engine_version" in data assert data.get("timeframes") == ["1d", "1w", "1M"] def test_wyckoff_crypto_scan_ok(client): resp = client.get("/api/wyckoff_crypto/scan?limit=5") assert resp.status_code == 200 data = resp.get_json() assert "rows" in data