Fixes test import errors in 7 test files that failed without package installed. **Changes:** 1. **tests/conftest.py** - Added pytest_configure() hook - Checks if skill_seekers package is installed before running tests - Shows helpful error message guiding users to run `pip install -e .` - Prevents confusing ModuleNotFoundError during test runs 2. **tests/test_constants.py** - Fixed dynamic imports - Changed `from cli import` to `from skill_seekers.cli import` (6 locations) - Fixes imports in test methods that dynamically import modules - All 16 tests now pass ✅ 3. **tests/test_llms_txt_detector.py** - Fixed patch decorators - Changed `patch('cli.llms_txt_detector.` to `patch('skill_seekers.cli.llms_txt_detector.` (4 locations) - All 4 tests now pass ✅ 4. **docs/CLAUDE.md** - Added "Running Tests" section - Clear instructions on installing package before testing - Explanation of why installation is required - Common pytest commands and options - Test coverage statistics **Testing:** - ✅ All 101 tests pass across the 7 affected files: - test_async_scraping.py (11 tests) - test_config_validation.py (26 tests) - test_constants.py (16 tests) - test_estimate_pages.py (8 tests) - test_integration.py (23 tests) - test_llms_txt_detector.py (4 tests) - test_llms_txt_downloader.py (13 tests) - ✅ conftest.py check works correctly - ✅ Helpful error shown when package not installed **Impact:** - Developers now get clear guidance when tests fail due to missing installation - All test import issues resolved - Better developer experience for contributors
31 lines
860 B
Python
31 lines
860 B
Python
"""
|
|
Pytest configuration for tests.
|
|
|
|
Configures anyio to only use asyncio backend (not trio).
|
|
Checks that the skill_seekers package is installed before running tests.
|
|
"""
|
|
|
|
import sys
|
|
import pytest
|
|
|
|
|
|
def pytest_configure(config):
|
|
"""Check if package is installed before running tests."""
|
|
try:
|
|
import skill_seekers
|
|
except ModuleNotFoundError:
|
|
print("\n" + "=" * 70)
|
|
print("ERROR: skill_seekers package not installed")
|
|
print("=" * 70)
|
|
print("\nPlease install the package in editable mode first:")
|
|
print(" pip install -e .")
|
|
print("\nOr activate your virtual environment if you already installed it.")
|
|
print("=" * 70 + "\n")
|
|
sys.exit(1)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def anyio_backend():
|
|
"""Override anyio backend to only use asyncio (not trio)."""
|
|
return "asyncio"
|