Fix provider setup without discovery

This commit is contained in:
rob 2026-07-21 13:01:54 -03:00
parent d464c79002
commit f8171142ee
2 changed files with 13 additions and 2 deletions

View File

@ -642,7 +642,6 @@ def get_providers_file() -> Path:
discovered = discover_installed_providers()
selected = []
if discovered:
import sys
print("=" * 60, file=sys.stderr)
print("CmdForge First-Run Provider Setup", file=sys.stderr)
print("=" * 60, file=sys.stderr)

View File

@ -9,7 +9,7 @@ import yaml
from cmdforge.providers import (
Provider, ProviderResult, ProviderExecutionPolicy,
load_providers, save_providers, get_provider,
load_providers, save_providers, get_provider, get_providers_file,
add_provider, delete_provider,
call_provider, discover_installed_providers, mock_provider,
DEFAULT_PROVIDERS, strip_ansi
@ -192,6 +192,18 @@ class TestProviderPersistence:
assert oct(temp_providers_file.stat().st_mode & 0o777) == "0o600"
def test_first_run_without_discovered_providers_writes_defaults(
self, temp_providers_file, capsys
):
with patch(
"cmdforge.providers.discover_installed_providers", return_value=[]
):
result = get_providers_file()
assert result == temp_providers_file
assert temp_providers_file.is_file()
assert "No AI providers detected" in capsys.readouterr().err
def test_malformed_access_policy_fails_closed(self, temp_providers_file, capsys):
temp_providers_file.parent.mkdir(parents=True)
temp_providers_file.write_text(yaml.safe_dump({