Files
calvana/ayn-antivirus/tests/test_cli.py

89 lines
2.3 KiB
Python

"""Tests for CLI commands using Click CliRunner."""
import pytest
from click.testing import CliRunner
from ayn_antivirus.cli import main
@pytest.fixture
def runner():
return CliRunner()
def test_help(runner):
result = runner.invoke(main, ["--help"])
assert result.exit_code == 0
assert "AYN Antivirus" in result.output or "scan" in result.output
def test_version(runner):
result = runner.invoke(main, ["--version"])
assert result.exit_code == 0
assert "1.0.0" in result.output
def test_scan_help(runner):
result = runner.invoke(main, ["scan", "--help"])
assert result.exit_code == 0
assert "--path" in result.output
def test_scan_containers_help(runner):
result = runner.invoke(main, ["scan-containers", "--help"])
assert result.exit_code == 0
assert "--runtime" in result.output
def test_dashboard_help(runner):
result = runner.invoke(main, ["dashboard", "--help"])
assert result.exit_code == 0
assert "--port" in result.output
def test_status(runner):
result = runner.invoke(main, ["status"])
assert result.exit_code == 0
def test_config_show(runner):
result = runner.invoke(main, ["config", "--show"])
assert result.exit_code == 0
def test_config_set_invalid_key(runner):
result = runner.invoke(main, ["config", "--set", "evil_key", "value"])
assert "Invalid config key" in result.output
def test_quarantine_list(runner):
# May fail with PermissionError on systems without /var/lib/ayn-antivirus
result = runner.invoke(main, ["quarantine", "list"])
# Accept exit code 0 (success) or 1 (permission denied on default path)
assert result.exit_code in (0, 1)
def test_update_help(runner):
result = runner.invoke(main, ["update", "--help"])
assert result.exit_code == 0
def test_fix_help(runner):
result = runner.invoke(main, ["fix", "--help"])
assert result.exit_code == 0
assert "--dry-run" in result.output
def test_report_help(runner):
result = runner.invoke(main, ["report", "--help"])
assert result.exit_code == 0
assert "--format" in result.output
def test_scan_processes_runs(runner):
result = runner.invoke(main, ["scan-processes"])
assert result.exit_code == 0
def test_scan_network_runs(runner):
result = runner.invoke(main, ["scan-network"])
assert result.exit_code == 0