We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kpeacocke/souschef'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""Tests for AI playbook validation and repair."""
from unittest.mock import patch
from souschef.converters import playbook as playbook_converter
def test_validate_and_fix_playbook_repairs_invalid_yaml() -> None:
"""Ensure invalid YAML triggers AI repair and returns valid YAML."""
invalid_playbook = """---
- name: Bad playbook
hosts: all
tasks:
- name: Bad task
when: ansible.builtin.stat:
"""
fixed_playbook = """---
- name: Repaired playbook
hosts: all
tasks:
- name: Check file
ansible.builtin.stat:
path: /tmp/file
register: file_stat
- name: Do work
ansible.builtin.command:
cmd: echo ok
when: file_stat.stat.exists
"""
with (
patch.object(
playbook_converter,
"_call_ai_api",
return_value=fixed_playbook,
) as mock_call,
patch.object(playbook_converter, "_run_ansible_lint", return_value=None),
):
result = playbook_converter._validate_and_fix_playbook(
invalid_playbook,
client=object(),
ai_provider="openai",
model="gpt-test",
temperature=0.2,
max_tokens=200,
)
assert result == fixed_playbook.strip()
assert mock_call.called