mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-01 17:39:39 +02:00
90 lines
2.7 KiB
Python
90 lines
2.7 KiB
Python
|
|
"""
|
||
|
|
Integration tests for CLI interface.
|
||
|
|
"""
|
||
|
|
|
||
|
|
import pytest
|
||
|
|
import subprocess
|
||
|
|
|
||
|
|
from conftest import TESTED_VERSIONS
|
||
|
|
|
||
|
|
|
||
|
|
@pytest.mark.integration
|
||
|
|
class TestCLIInterface:
|
||
|
|
"""Tests for CLI command line interface."""
|
||
|
|
|
||
|
|
def test_cli_executable_help(self):
|
||
|
|
"""Test that CLI executable --help works."""
|
||
|
|
result = subprocess.run(
|
||
|
|
['tg-build-deployment', '--help'],
|
||
|
|
capture_output=True,
|
||
|
|
text=True
|
||
|
|
)
|
||
|
|
assert result.returncode == 0
|
||
|
|
assert 'usage' in result.stdout.lower()
|
||
|
|
|
||
|
|
def test_cli_executable_exists(self):
|
||
|
|
"""Test that tg-build-deployment is in PATH."""
|
||
|
|
result = subprocess.run(
|
||
|
|
['which', 'tg-build-deployment'],
|
||
|
|
capture_output=True,
|
||
|
|
text=True
|
||
|
|
)
|
||
|
|
assert result.returncode == 0
|
||
|
|
|
||
|
|
def test_output_modes(self, run_configurator, test_config_dir, primary_version):
|
||
|
|
"""Test -O and -R output modes."""
|
||
|
|
config_file = str(test_config_dir / "minimal.json")
|
||
|
|
|
||
|
|
# Test -O mode
|
||
|
|
stdout_o, _, code_o = run_configurator([
|
||
|
|
'-t', primary_version,
|
||
|
|
'-p', 'docker-compose',
|
||
|
|
'-i', config_file,
|
||
|
|
'--latest-stable',
|
||
|
|
'-O'
|
||
|
|
])
|
||
|
|
assert code_o == 0
|
||
|
|
assert len(stdout_o) > 0
|
||
|
|
|
||
|
|
# Test -R mode
|
||
|
|
stdout_r, _, code_r = run_configurator([
|
||
|
|
'-t', primary_version,
|
||
|
|
'-p', 'docker-compose',
|
||
|
|
'-i', config_file,
|
||
|
|
'--latest-stable',
|
||
|
|
'-R'
|
||
|
|
])
|
||
|
|
assert code_r == 0
|
||
|
|
assert len(stdout_r) > 0
|
||
|
|
|
||
|
|
# Outputs should be different
|
||
|
|
assert stdout_o != stdout_r
|
||
|
|
|
||
|
|
def test_platform_argument(self, run_configurator, test_config_dir, primary_version):
|
||
|
|
"""Test -p/--platform argument."""
|
||
|
|
config_file = str(test_config_dir / "minimal.json")
|
||
|
|
|
||
|
|
for platform in ['docker-compose', 'minikube-k8s']:
|
||
|
|
stdout, stderr, code = run_configurator([
|
||
|
|
'-t', primary_version,
|
||
|
|
'-p', platform,
|
||
|
|
'-i', config_file,
|
||
|
|
'--latest-stable',
|
||
|
|
'-O'
|
||
|
|
])
|
||
|
|
assert code == 0, f"Failed for platform {platform}"
|
||
|
|
|
||
|
|
def test_template_argument(self, run_configurator, test_config_dir):
|
||
|
|
"""Test -t/--template argument."""
|
||
|
|
config_file = str(test_config_dir / "minimal.json")
|
||
|
|
|
||
|
|
for template in TESTED_VERSIONS:
|
||
|
|
stdout, stderr, code = run_configurator([
|
||
|
|
'-t', template,
|
||
|
|
'-p', 'docker-compose',
|
||
|
|
'-i', config_file,
|
||
|
|
'--latest-stable',
|
||
|
|
'-O'
|
||
|
|
])
|
||
|
|
assert code == 0, f"Failed for template {template}"
|