Files
aitbc/tests/cli/test_deploy_structure.py
oib 15427c96c0 chore: update file permissions to executable across repository
- Change file mode from 644 to 755 for all project files
- Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet"
- Rename Miner.extra_meta_data to extra_metadata for consistency
2026-03-06 22:17:54 +01:00

139 lines
6.3 KiB
Python
Executable File

"""Tests for deployment commands - structure only"""
import pytest
from click.testing import CliRunner
from aitbc_cli.main import cli
@pytest.fixture
def runner():
"""Create CLI runner"""
return CliRunner()
class TestDeployCommands:
"""Test suite for deployment operations"""
def test_deploy_create_help(self, runner):
"""Test deploy create help command"""
result = runner.invoke(cli, ['deploy', 'create', '--help'])
assert result.exit_code == 0
assert 'create a new deployment configuration' in result.output.lower()
assert 'name' in result.output.lower()
assert 'environment' in result.output.lower()
assert 'region' in result.output.lower()
def test_deploy_start_help(self, runner):
"""Test deploy start help command"""
result = runner.invoke(cli, ['deploy', 'start', '--help'])
assert result.exit_code == 0
assert 'deploy the application to production' in result.output.lower()
assert 'deployment_id' in result.output.lower()
def test_deploy_scale_help(self, runner):
"""Test deploy scale help command"""
result = runner.invoke(cli, ['deploy', 'scale', '--help'])
assert result.exit_code == 0
assert 'scale a deployment' in result.output.lower()
assert 'target_instances' in result.output.lower()
assert 'reason' in result.output.lower()
def test_deploy_status_help(self, runner):
"""Test deploy status help command"""
result = runner.invoke(cli, ['deploy', 'status', '--help'])
assert result.exit_code == 0
assert 'comprehensive deployment status' in result.output.lower()
assert 'deployment_id' in result.output.lower()
def test_deploy_overview_help(self, runner):
"""Test deploy overview help command"""
result = runner.invoke(cli, ['deploy', 'overview', '--help'])
assert result.exit_code == 0
assert 'overview of all deployments' in result.output.lower()
assert 'format' in result.output.lower()
def test_deploy_monitor_help(self, runner):
"""Test deploy monitor help command"""
result = runner.invoke(cli, ['deploy', 'monitor', '--help'])
assert result.exit_code == 0
assert 'monitor deployment performance' in result.output.lower()
assert 'interval' in result.output.lower()
def test_deploy_auto_scale_help(self, runner):
"""Test deploy auto-scale help command"""
result = runner.invoke(cli, ['deploy', 'auto-scale', '--help'])
assert result.exit_code == 0
assert 'auto-scaling evaluation' in result.output.lower()
assert 'deployment_id' in result.output.lower()
def test_deploy_list_deployments_help(self, runner):
"""Test deploy list-deployments help command"""
result = runner.invoke(cli, ['deploy', 'list-deployments', '--help'])
assert result.exit_code == 0
assert 'list all deployments' in result.output.lower()
assert 'format' in result.output.lower()
def test_deploy_group_help(self, runner):
"""Test deploy group help command"""
result = runner.invoke(cli, ['deploy', '--help'])
assert result.exit_code == 0
assert 'production deployment and scaling commands' in result.output.lower()
assert 'create' in result.output.lower()
assert 'start' in result.output.lower()
assert 'scale' in result.output.lower()
assert 'status' in result.output.lower()
assert 'overview' in result.output.lower()
assert 'monitor' in result.output.lower()
assert 'auto-scale' in result.output.lower()
assert 'list-deployments' in result.output.lower()
def test_deploy_create_missing_args(self, runner):
"""Test deploy create with missing arguments"""
result = runner.invoke(cli, ['deploy', 'create'])
assert result.exit_code == 2
assert 'missing argument' in result.output.lower() or 'usage:' in result.output.lower()
def test_deploy_start_missing_args(self, runner):
"""Test deploy start with missing arguments"""
result = runner.invoke(cli, ['deploy', 'start'])
assert result.exit_code == 2
assert 'missing argument' in result.output.lower() or 'usage:' in result.output.lower()
def test_deploy_scale_missing_args(self, runner):
"""Test deploy scale with missing arguments"""
result = runner.invoke(cli, ['deploy', 'scale'])
assert result.exit_code == 2
assert 'missing argument' in result.output.lower() or 'usage:' in result.output.lower()
def test_deploy_status_missing_args(self, runner):
"""Test deploy status with missing arguments"""
result = runner.invoke(cli, ['deploy', 'status'])
assert result.exit_code == 2
assert 'missing argument' in result.output.lower() or 'usage:' in result.output.lower()
def test_deploy_monitor_missing_args(self, runner):
"""Test deploy monitor with missing arguments"""
result = runner.invoke(cli, ['deploy', 'monitor'])
assert result.exit_code == 2
assert 'missing argument' in result.output.lower() or 'usage:' in result.output.lower()
def test_deploy_auto_scale_missing_args(self, runner):
"""Test deploy auto-scale with missing arguments"""
result = runner.invoke(cli, ['deploy', 'auto-scale'])
assert result.exit_code == 2
assert 'missing argument' in result.output.lower() or 'usage:' in result.output.lower()
def test_deploy_overview_no_args(self, runner):
"""Test deploy overview with no arguments (should work)"""
result = runner.invoke(cli, ['deploy', 'overview'])
# The command works and returns empty deployment data
assert result.exit_code == 0
assert 'total deployments' in result.output.lower()
def test_deploy_list_deployments_no_args(self, runner):
"""Test deploy list-deployments with no arguments (should work)"""
result = runner.invoke(cli, ['deploy', 'list-deployments'])
# The command works and returns no deployments
assert result.exit_code == 0
assert 'no deployments found' in result.output.lower()