Files
crypto_monitor/tests/test_hub_strategy_lib.py
T
dekun 778a215ad7 Fix strategy checklist print closing too early.
Stop auto-closing the print tab on afterprint (short checklist pages were especially fragile), load print HTML via fetch into a blank window, and use CSS checkboxes instead of Unicode ballot boxes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:16:34 +08:00

53 lines
1.7 KiB
Python

import json
import unittest
from pathlib import Path
from lib.hub.hub_strategy_lib import (
load_checklist,
load_strategy_payload,
strategy_meta_payload,
build_export_html,
build_print_html,
)
class TestHubStrategyLib(unittest.TestCase):
def test_meta_has_three_exchanges(self):
meta = strategy_meta_payload()
keys = [x["key"] for x in meta["exchanges"]]
self.assertEqual(keys, ["binance", "okx", "gate"])
def test_load_binance_payload(self):
p = load_strategy_payload("binance")
self.assertTrue(p["ok"])
self.assertIn("strategy_html", p)
self.assertIn("groups", p["checklist"])
self.assertIn("<h2", p["strategy_html"].lower())
def test_checklist_files_valid_json(self):
root = Path(__file__).resolve().parent.parent / "docs" / "strategy" / "checklists"
for name in ("binance", "okx", "gate"):
data = json.loads((root / f"{name}.json").read_text(encoding="utf-8"))
self.assertTrue(data.get("groups"))
def test_export_html_contains_checklist(self):
html = build_export_html("gate")
self.assertIn("Gate", html)
self.assertIn('class="box"', html)
self.assertNotIn("", html)
def test_print_html_doc_and_checklist(self):
doc = build_print_html("binance", "doc")
cl = build_print_html("binance", "checklist")
self.assertIn("window.print", doc)
self.assertIn("window.print", cl)
self.assertNotIn("window.close", cl)
self.assertIn("币安", doc)
self.assertIn("开仓检查清单", cl)
self.assertIn('class="box"', cl)
self.assertIn("本账户仅做多", cl)
if __name__ == "__main__":
unittest.main()