import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) import pytest @pytest.fixture def test_db(tmp_path, monkeypatch): """把数据库指向临时目录,避免污染真实 data/monitor.db。""" from app import db monkeypatch.setattr(db, "DB_PATH", tmp_path / "test.db") monkeypatch.setattr(db, "DATA_DIR", tmp_path) db.init_db() return db @pytest.fixture def sample_platform(test_db): """插入一个示例平台,返回 dict。""" from app import db with db.get_conn() as conn: cur = conn.execute( """INSERT INTO platforms (name, currency, icon, method, url, headers, body, balance_path, interval_seconds, retry_count, timeout_seconds, enabled, note) VALUES ('OpenAI', 'USD', 'OpenAI', 'GET', 'https://x.test/api?key={{apiKey}}', '{"Authorization": "Bearer {{apiKey}}"}', '', 'data.balance', 60, 2, 10, 1, '')""" ) pid = cur.lastrowid return dict((test_db.get_conn().execute("SELECT * FROM platforms WHERE id=?", (pid,)).fetchone()))