53 lines
1.6 KiB
Python
53 lines
1.6 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,
|
|
DEFAULT_INIT_INTEGRATION,
|
|
SCRIPT_TYPE_CHOICES,
|
|
)
|
|
assert isinstance(AGENT_CONFIG, dict)
|
|
assert DEFAULT_INIT_INTEGRATION == "copilot"
|
|
assert "sh" in SCRIPT_TYPE_CHOICES
|
|
|
|
|
|
def test_script_type_choices_includes_python():
|
|
from specify_cli._agent_config import SCRIPT_TYPE_CHOICES
|
|
assert SCRIPT_TYPE_CHOICES.get("py") == "Python"
|
|
# The three supported variants are sh, ps, and py.
|
|
assert {"sh", "ps", "py"} <= set(SCRIPT_TYPE_CHOICES)
|
|
|
|
|
|
def test_workflow_init_valid_script_types_includes_python():
|
|
from specify_cli.workflows.steps.init import VALID_SCRIPT_TYPES
|
|
assert "py" in VALID_SCRIPT_TYPES
|
|
# Negative: an unknown variant is not accepted.
|
|
assert "rb" not in VALID_SCRIPT_TYPES
|
|
|
|
|
|
def test_agent_config_re_exported_from_init():
|
|
from specify_cli import AGENT_CONFIG, 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
|