MCPcopy Index your code
hub / github.com/github/spec-kit / test_multiple_extensions

Method test_multiple_extensions

tests/test_extensions.py:2791–2842  ·  view source on GitHub ↗

Test installing multiple extensions.

(self, temp_dir, project_dir)

Source from the content-addressed store, hash-verified

2789 assert not prompt_file.exists()
2790
2791 def test_multiple_extensions(self, temp_dir, project_dir):
2792 """Test installing multiple extensions."""
2793 import yaml
2794
2795 # Create two extensions
2796 for i in range(1, 3):
2797 ext_dir = temp_dir / f"ext{i}"
2798 ext_dir.mkdir()
2799
2800 manifest_data = {
2801 "schema_version": "1.0",
2802 "extension": {
2803 "id": f"ext{i}",
2804 "name": f"Extension {i}",
2805 "version": "1.0.0",
2806 "description": f"Extension {i}",
2807 },
2808 "requires": {"speckit_version": ">=0.1.0"},
2809 "provides": {
2810 "commands": [
2811 {
2812 "name": f"speckit.ext{i}.cmd",
2813 "file": "commands/cmd.md",
2814 }
2815 ]
2816 },
2817 }
2818
2819 with open(ext_dir / "extension.yml", 'w') as f:
2820 yaml.dump(manifest_data, f)
2821
2822 (ext_dir / "commands").mkdir()
2823 (ext_dir / "commands" / "cmd.md").write_text("---\ndescription: Test\n---\nTest")
2824
2825 manager = ExtensionManager(project_dir)
2826
2827 # Install both
2828 manager.install_from_directory(temp_dir / "ext1", "0.1.0", register_commands=False)
2829 manager.install_from_directory(temp_dir / "ext2", "0.1.0", register_commands=False)
2830
2831 # Verify both installed
2832 installed = manager.list_installed()
2833 assert len(installed) == 2
2834 assert {ext["id"] for ext in installed} == {"ext1", "ext2"}
2835
2836 # Remove first
2837 manager.remove("ext1")
2838
2839 # Verify only second remains
2840 installed = manager.list_installed()
2841 assert len(installed) == 1
2842 assert installed[0]["id"] == "ext2"
2843
2844
2845# ===== Extension Catalog Tests =====

Callers

nothing calls this directly

Calls 4

list_installedMethod · 0.95
removeMethod · 0.95
ExtensionManagerClass · 0.90

Tested by

no test coverage detected