Ctrl K
ComunidadGuías…

test/tools/skills/conftest.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Copyright (c) 2026, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
#
# SPDX-License-Identifier: Apache-2.0

import textwrap
from pathlib import Path

import pytest


@pytest.fixture
def skill_tree(tmp_path: Path) -> Path:
    """Minimal skill tree for testing.

    Structure::

        tmp_path/
          react-best-practices/
            SKILL.md  (has version, has scripts/ and a resource)
            scripts/
              scaffold.py
            references/
              guide.md
          markdown-guide/
            SKILL.md  (no version, no scripts/, no resources)
    """
    react_dir = tmp_path / "react-best-practices"
    react_dir.mkdir(parents=True)
    (react_dir / "SKILL.md").write_text(
        textwrap.dedent("""\
            ---
            name: react-best-practices
            description: Best practices for React development
            version: 1.2.0
            ---
            # React Best Practices
            Use functional components and hooks.
        """),
        encoding="utf-8",
    )
    scripts_dir = react_dir / "scripts"
    scripts_dir.mkdir()
    (scripts_dir / "scaffold.py").write_text('print("scaffold")\n', encoding="utf-8")
    refs_dir = react_dir / "references"
    refs_dir.mkdir()
    (refs_dir / "guide.md").write_text("# Guide\nDetailed React guidance.\n", encoding="utf-8")

    md_dir = tmp_path / "markdown-guide"
    md_dir.mkdir(parents=True)
    (md_dir / "SKILL.md").write_text(
        textwrap.dedent("""\
            ---
            name: markdown-guide
            description: Guide for writing Markdown
            ---
            # Markdown Guide
            Use headings, lists, and code blocks.
        """),
        encoding="utf-8",
    )

    return tmp_path