run ruff
This commit is contained in:
@@ -4,10 +4,11 @@ Tests that the package structure is correct and imports work properly.
|
||||
This ensures modern Python packaging (src/ layout, pyproject.toml) is successful.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
class TestCliPackage:
|
||||
"""Test skill_seekers.cli package structure and imports."""
|
||||
@@ -15,40 +16,47 @@ class TestCliPackage:
|
||||
def test_cli_package_exists(self):
|
||||
"""Test that skill_seekers.cli package can be imported."""
|
||||
import skill_seekers.cli
|
||||
|
||||
assert skill_seekers.cli is not None
|
||||
|
||||
def test_cli_has_version(self):
|
||||
"""Test that skill_seekers.cli package has __version__."""
|
||||
import skill_seekers.cli
|
||||
assert hasattr(skill_seekers.cli, '__version__')
|
||||
assert skill_seekers.cli.__version__ == '2.5.2'
|
||||
|
||||
assert hasattr(skill_seekers.cli, "__version__")
|
||||
assert skill_seekers.cli.__version__ == "2.5.2"
|
||||
|
||||
def test_cli_has_all(self):
|
||||
"""Test that skill_seekers.cli package has __all__ export list."""
|
||||
import skill_seekers.cli
|
||||
assert hasattr(skill_seekers.cli, '__all__')
|
||||
|
||||
assert hasattr(skill_seekers.cli, "__all__")
|
||||
assert isinstance(skill_seekers.cli.__all__, list)
|
||||
assert len(skill_seekers.cli.__all__) > 0
|
||||
|
||||
def test_llms_txt_detector_import(self):
|
||||
"""Test that LlmsTxtDetector can be imported from skill_seekers.cli."""
|
||||
from skill_seekers.cli import LlmsTxtDetector
|
||||
|
||||
assert LlmsTxtDetector is not None
|
||||
|
||||
def test_llms_txt_downloader_import(self):
|
||||
"""Test that LlmsTxtDownloader can be imported from skill_seekers.cli."""
|
||||
from skill_seekers.cli import LlmsTxtDownloader
|
||||
|
||||
assert LlmsTxtDownloader is not None
|
||||
|
||||
def test_llms_txt_parser_import(self):
|
||||
"""Test that LlmsTxtParser can be imported from skill_seekers.cli."""
|
||||
from skill_seekers.cli import LlmsTxtParser
|
||||
|
||||
assert LlmsTxtParser is not None
|
||||
|
||||
def test_open_folder_import(self):
|
||||
"""Test that open_folder can be imported from skill_seekers.cli (if utils exists)."""
|
||||
try:
|
||||
from skill_seekers.cli import open_folder
|
||||
|
||||
# If import succeeds, function should not be None
|
||||
assert open_folder is not None
|
||||
except ImportError:
|
||||
@@ -58,8 +66,9 @@ class TestCliPackage:
|
||||
def test_cli_exports_match_all(self):
|
||||
"""Test that exported items in __all__ can actually be imported."""
|
||||
import skill_seekers.cli as cli
|
||||
|
||||
for item_name in cli.__all__:
|
||||
if item_name == 'open_folder' and cli.open_folder is None:
|
||||
if item_name == "open_folder" and cli.open_folder is None:
|
||||
# open_folder might be None if utils doesn't exist
|
||||
continue
|
||||
assert hasattr(cli, item_name), f"{item_name} not found in cli package"
|
||||
@@ -71,30 +80,35 @@ class TestMcpPackage:
|
||||
def test_mcp_package_exists(self):
|
||||
"""Test that skill_seekers.mcp package can be imported."""
|
||||
import skill_seekers.mcp
|
||||
|
||||
assert skill_seekers.mcp is not None
|
||||
|
||||
def test_mcp_has_version(self):
|
||||
"""Test that skill_seekers.mcp package has __version__."""
|
||||
import skill_seekers.mcp
|
||||
assert hasattr(skill_seekers.mcp, '__version__')
|
||||
assert skill_seekers.mcp.__version__ == '2.5.2'
|
||||
|
||||
assert hasattr(skill_seekers.mcp, "__version__")
|
||||
assert skill_seekers.mcp.__version__ == "2.5.2"
|
||||
|
||||
def test_mcp_has_all(self):
|
||||
"""Test that skill_seekers.mcp package has __all__ export list."""
|
||||
import skill_seekers.mcp
|
||||
assert hasattr(skill_seekers.mcp, '__all__')
|
||||
|
||||
assert hasattr(skill_seekers.mcp, "__all__")
|
||||
assert isinstance(skill_seekers.mcp.__all__, list)
|
||||
|
||||
def test_mcp_tools_package_exists(self):
|
||||
"""Test that skill_seekers.mcp.tools subpackage can be imported."""
|
||||
import skill_seekers.mcp.tools
|
||||
|
||||
assert skill_seekers.mcp.tools is not None
|
||||
|
||||
def test_mcp_tools_has_version(self):
|
||||
"""Test that skill_seekers.mcp.tools has __version__."""
|
||||
import skill_seekers.mcp.tools
|
||||
assert hasattr(skill_seekers.mcp.tools, '__version__')
|
||||
assert skill_seekers.mcp.tools.__version__ == '2.5.2'
|
||||
|
||||
assert hasattr(skill_seekers.mcp.tools, "__version__")
|
||||
assert skill_seekers.mcp.tools.__version__ == "2.5.2"
|
||||
|
||||
|
||||
class TestPackageStructure:
|
||||
@@ -102,28 +116,30 @@ class TestPackageStructure:
|
||||
|
||||
def test_cli_init_file_exists(self):
|
||||
"""Test that src/skill_seekers/cli/__init__.py exists."""
|
||||
init_file = Path(__file__).parent.parent / 'src' / 'skill_seekers' / 'cli' / '__init__.py'
|
||||
init_file = Path(__file__).parent.parent / "src" / "skill_seekers" / "cli" / "__init__.py"
|
||||
assert init_file.exists(), "src/skill_seekers/cli/__init__.py not found"
|
||||
|
||||
def test_mcp_init_file_exists(self):
|
||||
"""Test that src/skill_seekers/mcp/__init__.py exists."""
|
||||
init_file = Path(__file__).parent.parent / 'src' / 'skill_seekers' / 'mcp' / '__init__.py'
|
||||
init_file = Path(__file__).parent.parent / "src" / "skill_seekers" / "mcp" / "__init__.py"
|
||||
assert init_file.exists(), "src/skill_seekers/mcp/__init__.py not found"
|
||||
|
||||
def test_mcp_tools_init_file_exists(self):
|
||||
"""Test that src/skill_seekers/mcp/tools/__init__.py exists."""
|
||||
init_file = Path(__file__).parent.parent / 'src' / 'skill_seekers' / 'mcp' / 'tools' / '__init__.py'
|
||||
init_file = Path(__file__).parent.parent / "src" / "skill_seekers" / "mcp" / "tools" / "__init__.py"
|
||||
assert init_file.exists(), "src/skill_seekers/mcp/tools/__init__.py not found"
|
||||
|
||||
def test_cli_init_has_docstring(self):
|
||||
"""Test that skill_seekers.cli/__init__.py has a module docstring."""
|
||||
import skill_seekers.cli
|
||||
|
||||
assert skill_seekers.cli.__doc__ is not None
|
||||
assert len(skill_seekers.cli.__doc__) > 50 # Should have substantial documentation
|
||||
|
||||
def test_mcp_init_has_docstring(self):
|
||||
"""Test that skill_seekers.mcp/__init__.py has a module docstring."""
|
||||
import skill_seekers.mcp
|
||||
|
||||
assert skill_seekers.mcp.__doc__ is not None
|
||||
assert len(skill_seekers.mcp.__doc__) > 50 # Should have substantial documentation
|
||||
|
||||
@@ -133,9 +149,8 @@ class TestImportPatterns:
|
||||
|
||||
def test_direct_module_import(self):
|
||||
"""Test importing modules directly."""
|
||||
from skill_seekers.cli import llms_txt_detector
|
||||
from skill_seekers.cli import llms_txt_downloader
|
||||
from skill_seekers.cli import llms_txt_parser
|
||||
from skill_seekers.cli import llms_txt_detector, llms_txt_downloader, llms_txt_parser
|
||||
|
||||
assert llms_txt_detector is not None
|
||||
assert llms_txt_downloader is not None
|
||||
assert llms_txt_parser is not None
|
||||
@@ -143,20 +158,17 @@ class TestImportPatterns:
|
||||
def test_class_import_from_package(self):
|
||||
"""Test importing classes from package."""
|
||||
from skill_seekers.cli import LlmsTxtDetector, LlmsTxtDownloader, LlmsTxtParser
|
||||
assert LlmsTxtDetector.__name__ == 'LlmsTxtDetector'
|
||||
assert LlmsTxtDownloader.__name__ == 'LlmsTxtDownloader'
|
||||
assert LlmsTxtParser.__name__ == 'LlmsTxtParser'
|
||||
|
||||
assert LlmsTxtDetector.__name__ == "LlmsTxtDetector"
|
||||
assert LlmsTxtDownloader.__name__ == "LlmsTxtDownloader"
|
||||
assert LlmsTxtParser.__name__ == "LlmsTxtParser"
|
||||
|
||||
def test_package_level_import(self):
|
||||
"""Test importing entire packages."""
|
||||
import skill_seekers
|
||||
import skill_seekers.cli
|
||||
import skill_seekers.mcp
|
||||
import skill_seekers.mcp.tools
|
||||
assert 'skill_seekers' in sys.modules
|
||||
assert 'skill_seekers.cli' in sys.modules
|
||||
assert 'skill_seekers.mcp' in sys.modules
|
||||
assert 'skill_seekers.mcp.tools' in sys.modules
|
||||
assert "skill_seekers" in sys.modules
|
||||
assert "skill_seekers.cli" in sys.modules
|
||||
assert "skill_seekers.mcp" in sys.modules
|
||||
assert "skill_seekers.mcp.tools" in sys.modules
|
||||
|
||||
|
||||
class TestBackwardsCompatibility:
|
||||
@@ -168,6 +180,7 @@ class TestBackwardsCompatibility:
|
||||
from skill_seekers.cli.llms_txt_detector import LlmsTxtDetector
|
||||
from skill_seekers.cli.llms_txt_downloader import LlmsTxtDownloader
|
||||
from skill_seekers.cli.llms_txt_parser import LlmsTxtParser
|
||||
|
||||
assert LlmsTxtDetector is not None
|
||||
assert LlmsTxtDownloader is not None
|
||||
assert LlmsTxtParser is not None
|
||||
@@ -177,6 +190,7 @@ class TestBackwardsCompatibility:
|
||||
import skill_seekers.cli.llms_txt_detector
|
||||
import skill_seekers.cli.llms_txt_downloader
|
||||
import skill_seekers.cli.llms_txt_parser
|
||||
|
||||
assert skill_seekers.cli.llms_txt_detector is not None
|
||||
assert skill_seekers.cli.llms_txt_downloader is not None
|
||||
assert skill_seekers.cli.llms_txt_parser is not None
|
||||
@@ -188,20 +202,23 @@ class TestRootPackage:
|
||||
def test_root_package_exists(self):
|
||||
"""Test that skill_seekers root package can be imported."""
|
||||
import skill_seekers
|
||||
|
||||
assert skill_seekers is not None
|
||||
|
||||
def test_root_has_version(self):
|
||||
"""Test that skill_seekers root package has __version__."""
|
||||
import skill_seekers
|
||||
assert hasattr(skill_seekers, '__version__')
|
||||
assert skill_seekers.__version__ == '2.5.2'
|
||||
|
||||
assert hasattr(skill_seekers, "__version__")
|
||||
assert skill_seekers.__version__ == "2.5.2"
|
||||
|
||||
def test_root_has_metadata(self):
|
||||
"""Test that skill_seekers root package has metadata."""
|
||||
import skill_seekers
|
||||
assert hasattr(skill_seekers, '__author__')
|
||||
assert hasattr(skill_seekers, '__license__')
|
||||
assert skill_seekers.__license__ == 'MIT'
|
||||
|
||||
assert hasattr(skill_seekers, "__author__")
|
||||
assert hasattr(skill_seekers, "__license__")
|
||||
assert skill_seekers.__license__ == "MIT"
|
||||
|
||||
|
||||
class TestCLIEntryPoints:
|
||||
@@ -210,14 +227,16 @@ class TestCLIEntryPoints:
|
||||
def test_main_cli_module_exists(self):
|
||||
"""Test that main.py module exists and can be imported."""
|
||||
from skill_seekers.cli import main
|
||||
|
||||
assert main is not None
|
||||
assert hasattr(main, 'main')
|
||||
assert hasattr(main, "main")
|
||||
assert callable(main.main)
|
||||
|
||||
def test_main_cli_has_parser(self):
|
||||
"""Test that main.py has parser creation function."""
|
||||
from skill_seekers.cli.main import create_parser
|
||||
|
||||
parser = create_parser()
|
||||
assert parser is not None
|
||||
# Test that main subcommands are configured
|
||||
assert parser.prog == 'skill-seekers'
|
||||
assert parser.prog == "skill-seekers"
|
||||
|
||||
Reference in New Issue
Block a user