openwebui-cli/tests/test_main_version.py
2025-12-01 04:24:51 +01:00

67 lines
2 KiB
Python

"""Tests for main CLI --version flag."""
import re
import pytest
from typer.testing import CliRunner
from openwebui_cli.main import app
from openwebui_cli import __version__
runner = CliRunner()
def test_version_flag_prints_version():
"""Test --version prints version and exits cleanly."""
result = runner.invoke(app, ["--version"])
assert result.exit_code == 0
assert "version" in result.output.lower()
# Check version pattern (e.g., "0.1.0")
assert re.search(r"\d+\.\d+\.\d+", result.output) is not None
def test_version_flag_short_form():
"""Test -v short form of --version."""
result = runner.invoke(app, ["-v"])
assert result.exit_code == 0
assert "version" in result.output.lower()
# Check version pattern
assert re.search(r"\d+\.\d+\.\d+", result.output) is not None
def test_version_shows_correct_version():
"""Test --version shows the actual version from __version__."""
result = runner.invoke(app, ["--version"])
assert result.exit_code == 0
# Check that the actual version string is present
assert __version__ in result.output
def test_version_output_not_empty():
"""Test --version outputs something."""
result = runner.invoke(app, ["--version"])
assert result.exit_code == 0
assert len(result.output.strip()) > 0
def test_version_flag_with_other_flags():
"""Test --version works alongside other flags."""
# Version should take precedence and exit immediately
result = runner.invoke(app, ["--version", "--verbose"])
assert result.exit_code == 0
assert "version" in result.output.lower()
def test_version_matches_module_version():
"""Test that printed version matches module __version__."""
result = runner.invoke(app, ["--version"])
assert result.exit_code == 0
# The output should contain the actual version string from __init__.py
assert __version__ in result.output
# Also verify version is in proper format
assert result.output.count(".") >= 2 # At least X.Y.Z format