Skip to content

Commit 26dcc7e

Browse files
committed
refactor(ci): clarify Cargo binary loader naming
1 parent a30ed46 commit 26dcc7e

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

scripts/ci/package_windows_portable.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def load_portable_runtime_marker(project_root: pathlib.Path) -> str:
9191
def load_project_config_from(start_path: pathlib.Path) -> ProjectConfig:
9292
project_root = resolve_project_root_from(start_path)
9393
product_name = resolve_product_name(project_root)
94-
binary_name = load_cargo_package_name(project_root)
94+
binary_name = load_binary_name_from_cargo(project_root)
9595
portable_marker_name = load_portable_runtime_marker(project_root)
9696
return ProjectConfig(
9797
root=project_root,
@@ -147,7 +147,7 @@ def load_tauri_config(project_root: pathlib.Path) -> dict:
147147
return json.loads(config_path.read_text(encoding="utf-8"))
148148

149149

150-
def load_cargo_package_name(project_root: pathlib.Path) -> str:
150+
def load_binary_name_from_cargo(project_root: pathlib.Path) -> str:
151151
cargo_toml_path = project_root / CARGO_TOML_RELATIVE_PATH
152152
if not cargo_toml_path.is_file():
153153
raise FileNotFoundError(f"Cargo.toml not found: {cargo_toml_path}")
@@ -165,11 +165,11 @@ def load_cargo_package_name(project_root: pathlib.Path) -> str:
165165

166166
package_table = cargo_data.get("package")
167167
if not isinstance(package_table, dict):
168-
raise ValueError(f"Missing [package] in {CARGO_TOML_RELATIVE_PATH}")
168+
raise ValueError(f"Missing [package] in {cargo_toml_path}")
169169

170170
binary_name = str(package_table.get("name", "")).strip()
171171
if not binary_name:
172-
raise ValueError(f"Missing [package].name in {CARGO_TOML_RELATIVE_PATH}")
172+
raise ValueError(f"Missing [package].name in {cargo_toml_path}")
173173

174174
return binary_name
175175

scripts/ci/test_package_windows_portable.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
import tempfile
23
import unittest
34
from pathlib import Path
@@ -137,16 +138,19 @@ def test_load_cargo_package_name_supports_inline_comments(self):
137138
)
138139

139140
self.assertEqual(
140-
MODULE.load_cargo_package_name(project_root),
141+
MODULE.load_binary_name_from_cargo(project_root),
141142
"astrbot-desktop-tauri",
142143
)
143144

144145
def test_load_cargo_package_name_missing_cargo_toml_raises_file_not_found(self):
145146
with tempfile.TemporaryDirectory() as tmpdir:
146147
project_root = Path(tmpdir)
148+
cargo_toml_path = project_root / "src-tauri" / "Cargo.toml"
147149

148-
with self.assertRaises(FileNotFoundError):
149-
MODULE.load_cargo_package_name(project_root)
150+
with self.assertRaisesRegex(
151+
FileNotFoundError, re.escape(str(cargo_toml_path))
152+
):
153+
MODULE.load_binary_name_from_cargo(project_root)
150154

151155
def test_load_cargo_package_name_missing_package_table_raises_value_error(self):
152156
with tempfile.TemporaryDirectory() as tmpdir:
@@ -155,8 +159,8 @@ def test_load_cargo_package_name_missing_package_table_raises_value_error(self):
155159
cargo_toml_path.parent.mkdir(parents=True)
156160
cargo_toml_path.write_text('[workspace]\nmembers = ["crates/*"]\n')
157161

158-
with self.assertRaises(ValueError):
159-
MODULE.load_cargo_package_name(project_root)
162+
with self.assertRaisesRegex(ValueError, re.escape(str(cargo_toml_path))):
163+
MODULE.load_binary_name_from_cargo(project_root)
160164

161165
def test_load_cargo_package_name_missing_package_name_raises_value_error(self):
162166
with tempfile.TemporaryDirectory() as tmpdir:
@@ -165,8 +169,8 @@ def test_load_cargo_package_name_missing_package_name_raises_value_error(self):
165169
cargo_toml_path.parent.mkdir(parents=True)
166170
cargo_toml_path.write_text('[package]\nversion = "0.1.0"\n')
167171

168-
with self.assertRaises(ValueError):
169-
MODULE.load_cargo_package_name(project_root)
172+
with self.assertRaisesRegex(ValueError, re.escape(str(cargo_toml_path))):
173+
MODULE.load_binary_name_from_cargo(project_root)
170174

171175
def test_load_cargo_package_name_empty_package_name_raises_value_error(self):
172176
with tempfile.TemporaryDirectory() as tmpdir:
@@ -175,8 +179,8 @@ def test_load_cargo_package_name_empty_package_name_raises_value_error(self):
175179
cargo_toml_path.parent.mkdir(parents=True)
176180
cargo_toml_path.write_text('[package]\nname = ""\n')
177181

178-
with self.assertRaises(ValueError):
179-
MODULE.load_cargo_package_name(project_root)
182+
with self.assertRaisesRegex(ValueError, re.escape(str(cargo_toml_path))):
183+
MODULE.load_binary_name_from_cargo(project_root)
180184

181185
def test_load_cargo_package_name_falls_back_to_package_when_bin_missing_name(self):
182186
with tempfile.TemporaryDirectory() as tmpdir:
@@ -191,7 +195,7 @@ def test_load_cargo_package_name_falls_back_to_package_when_bin_missing_name(sel
191195
)
192196

193197
self.assertEqual(
194-
MODULE.load_cargo_package_name(project_root),
198+
MODULE.load_binary_name_from_cargo(project_root),
195199
"astrbot-desktop-tauri",
196200
)
197201

@@ -207,7 +211,9 @@ def test_load_cargo_package_name_prefers_explicit_bin_name(self):
207211
'name = "AstrBot"\n'
208212
)
209213

210-
self.assertEqual(MODULE.load_cargo_package_name(project_root), "AstrBot")
214+
self.assertEqual(
215+
MODULE.load_binary_name_from_cargo(project_root), "AstrBot"
216+
)
211217

212218
def test_resolve_main_executable_path_uses_binary_name_not_product_name(self):
213219
with tempfile.TemporaryDirectory() as tmpdir:

0 commit comments

Comments
 (0)