70 lines
3.5 KiB
Plaintext
70 lines
3.5 KiB
Plaintext
*** Settings ***
|
|
Documentation Smoke tests for Skill YAML schema validation
|
|
Resource ${CURDIR}/common.resource
|
|
Suite Setup Setup Test Environment
|
|
Suite Teardown Cleanup Test Environment
|
|
|
|
*** Variables ***
|
|
${HELPER} ${CURDIR}/helper_skill_schema.py
|
|
|
|
*** Test Cases ***
|
|
Validate Single-Tool Skill YAML
|
|
[Documentation] Parse the single-tool example skill YAML and assert success
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate ${CURDIR}/../examples/skills/single-tool.yaml cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-ok
|
|
|
|
Validate Composed Skill YAML
|
|
[Documentation] Parse the composed example skill YAML and assert success
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate ${CURDIR}/../examples/skills/composed.yaml cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-ok
|
|
|
|
Validate Inline-Tool Skill YAML
|
|
[Documentation] Parse the inline-tool example skill YAML and assert success
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate ${CURDIR}/../examples/skills/inline-tool.yaml cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-ok
|
|
|
|
Validate Validation-Only Skill YAML
|
|
[Documentation] Parse the validation-only example skill YAML and assert success
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate ${CURDIR}/../examples/skills/validation-only.yaml cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-ok
|
|
|
|
Validate MCP-Backed Skill YAML
|
|
[Documentation] Parse the MCP-backed example skill YAML and assert success
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate ${CURDIR}/../examples/skills/mcp-backed.yaml cwd=${WORKSPACE}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-ok
|
|
|
|
Reject Invalid Skill YAML
|
|
[Documentation] Attempt to parse an intentionally invalid YAML and assert failure
|
|
${invalid_yaml}= Set Variable ${TEMPDIR}${/}invalid_skill.yaml
|
|
Create File ${invalid_yaml} description: missing required fields\n
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate-invalid ${invalid_yaml} cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-expected-fail
|
|
|
|
Validate Spec-Compliant Skill YAML With skill: Wrapper Key
|
|
[Tags] tdd_issue tdd_issue_1472
|
|
[Documentation] Parse a spec-compliant YAML with cleveragents: header and skill: wrapper key
|
|
${wrapped_yaml}= Set Variable ${TEMPDIR}${/}wrapped_skill.yaml
|
|
${yaml_content}= Catenate SEPARATOR=\n
|
|
... cleveragents:
|
|
... ${SPACE}${SPACE}version: "1.0"
|
|
... skill:
|
|
... ${SPACE}${SPACE}name: local/wrapped-skill
|
|
... ${SPACE}${SPACE}description: "A wrapped skill"
|
|
...
|
|
Create File ${wrapped_yaml} ${yaml_content}
|
|
${result}= Run Process ${PYTHON} ${HELPER} validate ${wrapped_yaml} cwd=${WORKSPACE}
|
|
Log ${result.stdout}
|
|
Log ${result.stderr}
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} skill-schema-ok
|
|
|