mirror of
https://github.com/github/spec-kit.git
synced 2026-03-19 11:53:08 +00:00
fix: address Copilot PR review comments (round 2)
- Fix init --preset error masking: distinguish "not found" from real errors - Fix bash resolve_template: skip hidden dirs in extensions (match Python/PS) - Fix temp dir leaks in tests: use temp_dir fixture instead of mkdtemp - Fix self-test catalog entry: add note that it's local-only (no download_url) - Fix Windows path issue in resolve_with_source: use Path.relative_to() - Fix skill restore path: use project's .specify/templates/commands/ not source tree - Add encoding="utf-8" to all file read/write in agents.py - Update test to set up core command templates for skill restoration
This commit is contained in:
@@ -499,15 +499,15 @@ class TestPresetManager:
|
||||
manager = PresetManager(project_dir)
|
||||
assert manager.get_pack("nonexistent") is None
|
||||
|
||||
def test_check_compatibility_valid(self, pack_dir):
|
||||
def test_check_compatibility_valid(self, pack_dir, temp_dir):
|
||||
"""Test compatibility check with valid version."""
|
||||
manager = PresetManager(Path(tempfile.mkdtemp()))
|
||||
manager = PresetManager(temp_dir)
|
||||
manifest = PresetManifest(pack_dir / "preset.yml")
|
||||
assert manager.check_compatibility(manifest, "0.1.5") is True
|
||||
|
||||
def test_check_compatibility_invalid(self, pack_dir):
|
||||
def test_check_compatibility_invalid(self, pack_dir, temp_dir):
|
||||
"""Test compatibility check with invalid specifier."""
|
||||
manager = PresetManager(Path(tempfile.mkdtemp()))
|
||||
manager = PresetManager(temp_dir)
|
||||
manifest = PresetManifest(pack_dir / "preset.yml")
|
||||
manifest.data["requires"]["speckit_version"] = "not-a-specifier"
|
||||
with pytest.raises(PresetCompatibilityError, match="Invalid version specifier"):
|
||||
@@ -1678,6 +1678,11 @@ class TestPresetSkills:
|
||||
|
||||
(project_dir / ".claude" / "commands").mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Set up core command template in the project so restoration works
|
||||
core_cmds = project_dir / ".specify" / "templates" / "commands"
|
||||
core_cmds.mkdir(parents=True, exist_ok=True)
|
||||
(core_cmds / "specify.md").write_text("---\ndescription: Core specify command\n---\n\nCore specify body\n")
|
||||
|
||||
manager = PresetManager(project_dir)
|
||||
SELF_TEST_DIR = Path(__file__).parent.parent / "presets" / "self-test"
|
||||
manager.install_from_directory(SELF_TEST_DIR, "0.1.5")
|
||||
|
||||
Reference in New Issue
Block a user