mcp-database-server
- tests
from unittest.mock import patch
import pytest
from click.testing import CliRunner
from odmcp.cli import cli
@pytest.fixture
def runner():
return CliRunner()
def test_run_valid_provider(runner):
# TODO: Implement this test
pass
def test_run_invalid_provider(runner):
result = runner.invoke(cli, ["run", "nonexistent_provider"])
assert result.exit_code == 1
assert "Provider 'nonexistent_provider' not found." in result.output
def test_list_providers(runner):
mock_modules = ["provider1", "provider2"]
with patch("pkgutil.iter_modules") as mock_iter_modules:
mock_iter_modules.return_value = [(None, name, False) for name in mock_modules]
result = runner.invoke(cli, ["list"])
assert result.exit_code == 0
assert "Available providers:" in result.output
for provider in mock_modules:
assert provider in result.output
def test_list_no_providers(runner):
with patch("pkgutil.iter_modules") as mock_iter_modules:
mock_iter_modules.return_value = []
result = runner.invoke(cli, ["list"])
assert result.exit_code == 0
assert "No providers available" in result.output
def test_info_valid_provider(runner):
mock_module = type(
"Module",
(),
{"__doc__": "Test provider description", "SUPPORTED_TYPES": ["type1", "type2"]},
)
with patch("importlib.import_module") as mock_import:
mock_import.return_value = mock_module
result = runner.invoke(cli, ["info", "test_provider"])
assert result.exit_code == 0
assert "Provider: test_provider" in result.output
assert "Description: Test provider description" in result.output
assert "Supported types: type1, type2" in result.output
def test_info_invalid_provider(runner):
result = runner.invoke(cli, ["info", "nonexistent_provider"])
assert result.exit_code == 1
assert "Provider 'nonexistent_provider' not found" in result.output
def test_version_command(runner):
with patch("importlib.metadata.version") as mock_version:
mock_version.return_value = "1.0.0"
result = runner.invoke(cli, ["version"])
assert result.exit_code == 0
assert "odmcp version: 1.0.0" in result.output