mirror of
https://github.com/github/spec-kit.git
synced 2026-07-03 12:28:06 +08:00
* refactor(integrations): co-locate integration commands in integrations/ domain dir
- Remove commands/ stubs (handlers will live in domain dirs)
- Move all integration CLI handlers out of __init__.py into integrations/
- Split into focused modules under integrations/:
_helpers.py (340 lines) — domain helpers
_install_commands.py (306 lines) — install / uninstall
_migrate_commands.py (487 lines) — switch / upgrade
_query_commands.py (442 lines) — list / use / search / info / catalog
_commands.py (34 lines) — app objects + register()
- __init__.py reduced by ~1400 lines; integration block replaced with register() call
- Fix patch paths in tests to new module locations
* fix(integrations): restore original integration list output in refactor
Preserve the CLI Required column, post-table default/installed summary,
and no-installed guidance that were dropped during the no-behavior-change
refactor of integration list into _query_commands.py.
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(integrations): restore _clear/_update_init_options public imports
The refactor that split integration commands moved
_clear_init_options_for_integration and _update_init_options_for_integration
into integrations/_helpers.py, but tests still import them from the top-level
specify_cli package, causing ImportError. Re-export them with explicit aliases
at the end of __init__.py to preserve the public import surface.
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Tests for the commands/ package structure."""
|
|
import importlib
|
|
|
|
|
|
def test_commands_package_importable():
|
|
mod = importlib.import_module("specify_cli.commands")
|
|
assert mod is not None
|
|
|
|
|
|
def test_commands_init_importable():
|
|
mod = importlib.import_module("specify_cli.commands.init")
|
|
assert hasattr(mod, "register")
|
|
assert callable(mod.register)
|
|
|
|
|
|
def test_agent_config_importable():
|
|
from specify_cli._agent_config import (
|
|
AGENT_CONFIG,
|
|
AI_ASSISTANT_ALIASES,
|
|
AI_ASSISTANT_HELP,
|
|
DEFAULT_INIT_INTEGRATION,
|
|
SCRIPT_TYPE_CHOICES,
|
|
)
|
|
assert isinstance(AGENT_CONFIG, dict)
|
|
assert isinstance(AI_ASSISTANT_ALIASES, dict)
|
|
assert isinstance(AI_ASSISTANT_HELP, str)
|
|
assert DEFAULT_INIT_INTEGRATION == "copilot"
|
|
assert "sh" in SCRIPT_TYPE_CHOICES
|
|
|
|
|
|
def test_agent_config_re_exported_from_init():
|
|
from specify_cli import AGENT_CONFIG, AI_ASSISTANT_ALIASES, AI_ASSISTANT_HELP, SCRIPT_TYPE_CHOICES
|
|
assert isinstance(AGENT_CONFIG, dict)
|
|
assert "sh" in SCRIPT_TYPE_CHOICES
|
|
|
|
|
|
def test_init_command_registered():
|
|
from specify_cli import app
|
|
callback_names = [
|
|
cmd.callback.__name__ for cmd in app.registered_commands if cmd.callback
|
|
]
|
|
assert "init" in callback_names
|