33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
"""Tests for the version field added to SkillFrontmatter."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from crewai.skills.models import SkillFrontmatter
|
|
|
|
|
|
class TestSkillFrontmatterVersion:
|
|
def test_version_defaults_to_none(self) -> None:
|
|
fm = SkillFrontmatter(name="my-skill", description="A skill.")
|
|
assert fm.version is None
|
|
|
|
def test_version_can_be_set(self) -> None:
|
|
fm = SkillFrontmatter(name="my-skill", description="A skill.", version="1.2.3")
|
|
assert fm.version == "1.2.3"
|
|
|
|
def test_existing_frontmatter_without_version_still_valid(self) -> None:
|
|
"""Backward compat: existing SKILL.md files without version must still parse."""
|
|
fm = SkillFrontmatter(name="old-skill", description="Old skill without version.")
|
|
assert fm.version is None
|
|
|
|
def test_version_is_optional_string(self) -> None:
|
|
fm = SkillFrontmatter(name="my-skill", description="Desc.", version=None)
|
|
assert fm.version is None
|
|
|
|
def test_frontmatter_is_frozen(self) -> None:
|
|
fm = SkillFrontmatter(name="my-skill", description="A skill.", version="1.0.0")
|
|
with pytest.raises(ValidationError):
|
|
fm.version = "2.0.0" # type: ignore[misc]
|