@@ -44,6 +44,12 @@ def test_dep_check_passes_when_review_pin_matches(tmp_path: Path) -> None:
4444 review = _write (
4545 tmp_path , "review.toml" , '[project]\n name="pythinker-review"\n version="0.1.0"\n '
4646 )
47+ sdk = _write (
48+ tmp_path ,
49+ "sdk.toml" ,
50+ '[project]\n name="pythinker-sdk"\n version="1.1.0"\n '
51+ 'dependencies=["pythinker-core==1.1.1"]\n ' ,
52+ )
4753 result = _run_dep_check (
4854 "--root-pyproject" ,
4955 str (root ),
@@ -53,6 +59,8 @@ def test_dep_check_passes_when_review_pin_matches(tmp_path: Path) -> None:
5359 str (host ),
5460 "--pythinker-review-pyproject" ,
5561 str (review ),
62+ "--pythinker-sdk-pyproject" ,
63+ str (sdk ),
5664 )
5765 assert result .returncode == 0 , result .stderr
5866
@@ -70,6 +78,12 @@ def test_dep_check_fails_when_review_pin_drifts(tmp_path: Path) -> None:
7078 review = _write (
7179 tmp_path , "review.toml" , '[project]\n name="pythinker-review"\n version="0.2.0"\n '
7280 )
81+ sdk = _write (
82+ tmp_path ,
83+ "sdk.toml" ,
84+ '[project]\n name="pythinker-sdk"\n version="1.1.0"\n '
85+ 'dependencies=["pythinker-core==1.1.1"]\n ' ,
86+ )
7387 result = _run_dep_check (
7488 "--root-pyproject" ,
7589 str (root ),
@@ -79,11 +93,48 @@ def test_dep_check_fails_when_review_pin_drifts(tmp_path: Path) -> None:
7993 str (host ),
8094 "--pythinker-review-pyproject" ,
8195 str (review ),
96+ "--pythinker-sdk-pyproject" ,
97+ str (sdk ),
8298 )
8399 assert result .returncode == 1
84100 assert "pythinker-review version mismatch" in result .stderr
85101
86102
103+ def test_dep_check_fails_when_sdk_core_pin_drifts (tmp_path : Path ) -> None :
104+ root = _write (
105+ tmp_path ,
106+ "root.toml" ,
107+ '[project]\n name="pythinker-code"\n version="0.29.0"\n '
108+ 'dependencies=["pythinker-core[contrib]==1.2.0","pythinker-host==1.0.0",'
109+ '"pythinker-review==0.1.0"]\n ' ,
110+ )
111+ core = _write (tmp_path , "core.toml" , '[project]\n name="pythinker-core"\n version="1.2.0"\n ' )
112+ host = _write (tmp_path , "host.toml" , '[project]\n name="pythinker-host"\n version="1.0.0"\n ' )
113+ review = _write (
114+ tmp_path , "review.toml" , '[project]\n name="pythinker-review"\n version="0.1.0"\n '
115+ )
116+ sdk = _write (
117+ tmp_path ,
118+ "sdk.toml" ,
119+ '[project]\n name="pythinker-sdk"\n version="1.1.0"\n '
120+ 'dependencies=["pythinker-core==1.1.1"]\n ' ,
121+ )
122+ result = _run_dep_check (
123+ "--root-pyproject" ,
124+ str (root ),
125+ "--pythinker-core-pyproject" ,
126+ str (core ),
127+ "--pythinker-host-pyproject" ,
128+ str (host ),
129+ "--pythinker-review-pyproject" ,
130+ str (review ),
131+ "--pythinker-sdk-pyproject" ,
132+ str (sdk ),
133+ )
134+ assert result .returncode == 1
135+ assert "pythinker-sdk core dependency mismatch" in result .stderr
136+
137+
87138def test_parse_semver_accepts_xyz () -> None :
88139 assert release_tool .parse_semver ("0.28.0" ) == (0 , 28 , 0 )
89140
0 commit comments