feat: init commint
This commit is contained in:
@@ -16,6 +16,7 @@ VALID_OUTPUT_SCHEMA = {
|
||||
"type": "object",
|
||||
"properties": {"summary": {"type": "string"}},
|
||||
"required": ["summary"],
|
||||
"additionalProperties": False,
|
||||
}
|
||||
|
||||
|
||||
@@ -56,3 +57,76 @@ def test_rejects_example_that_does_not_match_schema(db):
|
||||
|
||||
with pytest.raises(SkillValidationError, match="示例输入不符合"):
|
||||
validate_skill_version(version)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"output_schema",
|
||||
[
|
||||
{"type": "array", "items": {"type": "string"}},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {"summary": {"type": "string"}},
|
||||
"required": ["summary"],
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {"summary": {"type": "string"}},
|
||||
"required": [],
|
||||
"additionalProperties": False,
|
||||
},
|
||||
],
|
||||
)
|
||||
def test_rejects_incomplete_output_contracts_for_every_enforcement(db, output_schema):
|
||||
version = make_version(
|
||||
output_schema=output_schema,
|
||||
output_enforcement="validated_json",
|
||||
)
|
||||
|
||||
with pytest.raises(SkillValidationError):
|
||||
validate_skill_version(version)
|
||||
|
||||
|
||||
def test_native_enforcement_rejects_unsupported_schema_keyword_at_publish(db):
|
||||
output_schema = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"missing_fields": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"uniqueItems": True,
|
||||
}
|
||||
},
|
||||
"required": ["missing_fields"],
|
||||
"additionalProperties": False,
|
||||
}
|
||||
version = make_version(
|
||||
output_schema=output_schema,
|
||||
output_enforcement="native_json_schema",
|
||||
)
|
||||
|
||||
with pytest.raises(
|
||||
SkillValidationError,
|
||||
match=r"\$\.properties\.missing_fields\.uniqueItems",
|
||||
):
|
||||
validate_skill_version(version)
|
||||
|
||||
|
||||
def test_validated_json_keeps_business_only_schema_constraints(db):
|
||||
output_schema = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"values": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"uniqueItems": True,
|
||||
}
|
||||
},
|
||||
"required": ["values"],
|
||||
"additionalProperties": False,
|
||||
}
|
||||
version = make_version(
|
||||
output_schema=output_schema,
|
||||
output_enforcement="validated_json",
|
||||
)
|
||||
|
||||
validate_skill_version(version)
|
||||
|
||||
Reference in New Issue
Block a user