fix: Add package installation check and fix test imports (Task 2.1)
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
This commit is contained in:
@@ -2,11 +2,28 @@
|
||||
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)."""
|
||||
|
||||
Reference in New Issue
Block a user