Skip to content

Commit af1a6e0

Browse files
Pigbibicodex
andcommitted
test: make dividend fixtures path portable
Co-Authored-By: Codex <noreply@openai.com>
1 parent 6fd3d6f commit af1a6e0

3 files changed

Lines changed: 54 additions & 4 deletions

File tree

data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"manifest_type": "feature_snapshot",
88
"row_count": 4,
99
"snapshot_as_of": "2026-06-27",
10-
"snapshot_path": "/Users/lisiyi/Projects/QmtPlatform/data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv",
10+
"snapshot_path": "data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv",
1111
"snapshot_sha256": "ba00a43b18ca204a53f6f657774b2964bc196a6727f329d0f9dd242f36d1cedd",
1212
"source_project": "CnEquitySnapshotPipelines",
1313
"strategy_profile": "cn_dividend_quality_snapshot"

data/fixtures/dividend_quality/release_status_summary.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@
3232
},
3333
"display_name": "CN Dividend Quality Snapshot",
3434
"generated_at": "2026-06-27T16:20:38.124005+00:00",
35-
"manifest_path": "/Users/lisiyi/Projects/QmtPlatform/data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv.manifest.json",
36-
"ranking_path": "/Users/lisiyi/Projects/QmtPlatform/data/fixtures/dividend_quality/cn_dividend_quality_snapshot_ranking_latest.csv",
35+
"manifest_path": "data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv.manifest.json",
36+
"ranking_path": "data/fixtures/dividend_quality/cn_dividend_quality_snapshot_ranking_latest.csv",
3737
"release_status": "ready",
3838
"row_count": 4,
3939
"signal_description": "cn dividend quality regime=risk_on breadth=100.0% target_stock=100.0% selected=3 top=601088(0.44), 600519(0.11), 000001(-0.55)",
4040
"snapshot_as_of": "2026-06-27",
41-
"snapshot_path": "/Users/lisiyi/Projects/QmtPlatform/data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv",
41+
"snapshot_path": "data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv",
4242
"source_project": "CnEquitySnapshotPipelines",
4343
"status_description": "regime=risk_on | breadth=100.0% | target_stock=100.0%",
4444
"strategy_profile": "cn_dividend_quality_snapshot"

tests/test_fixture_portability.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from __future__ import annotations
2+
3+
import json
4+
from pathlib import Path
5+
6+
import pytest
7+
8+
9+
ROOT = Path(__file__).resolve().parents[1]
10+
DIVIDEND_QUALITY_FIXTURES = ROOT / "data" / "fixtures" / "dividend_quality"
11+
PATH_CASES = (
12+
(
13+
DIVIDEND_QUALITY_FIXTURES
14+
/ "cn_dividend_quality_snapshot_factor_snapshot_latest.csv.manifest.json",
15+
"snapshot_path",
16+
"data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv",
17+
),
18+
(
19+
DIVIDEND_QUALITY_FIXTURES / "release_status_summary.json",
20+
"manifest_path",
21+
"data/fixtures/dividend_quality/"
22+
"cn_dividend_quality_snapshot_factor_snapshot_latest.csv.manifest.json",
23+
),
24+
(
25+
DIVIDEND_QUALITY_FIXTURES / "release_status_summary.json",
26+
"ranking_path",
27+
"data/fixtures/dividend_quality/cn_dividend_quality_snapshot_ranking_latest.csv",
28+
),
29+
(
30+
DIVIDEND_QUALITY_FIXTURES / "release_status_summary.json",
31+
"snapshot_path",
32+
"data/fixtures/dividend_quality/cn_dividend_quality_snapshot_factor_snapshot_latest.csv",
33+
),
34+
)
35+
36+
37+
@pytest.mark.parametrize(("fixture", "field", "expected"), PATH_CASES)
38+
def test_dividend_quality_fixture_paths_are_repository_relative(
39+
fixture: Path,
40+
field: str,
41+
expected: str,
42+
) -> None:
43+
payload = json.loads(fixture.read_text(encoding="utf-8"))
44+
value = payload[field]
45+
46+
assert value == expected
47+
assert not Path(value).is_absolute()
48+
target = (ROOT / value).resolve()
49+
target.relative_to(ROOT.resolve())
50+
assert target.is_file()

0 commit comments

Comments
 (0)