Agent skill
test-imports
Test Python module imports to verify correct installation and structure
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/test-imports
SKILL.md
User Input
$ARGUMENTS
(Arguments are ignored - this skill auto-discovers all modules)
Task
Test Python module imports to ensure all modules are correctly structured and importable. Automatically discovers all Python modules in the src/ directory.
Steps
-
Navigate to Backend Directory and Run Import Test:
bashcd backend && python -c "
import sys import os sys.path.insert(0, '.')
Auto-discover all modules in src/
modules_to_test = []
def find_modules(directory, prefix=''): """Recursively find all importable Python modules""" for item in sorted(os.listdir(directory)): item_path = os.path.join(directory, item)
# Skip __pycache__ and hidden directories
if item.startswith('__') or item.startswith('.'):
continue
if os.path.isdir(item_path):
# If directory has __init__.py, it's a package
init_file = os.path.join(item_path, '__init__.py')
if os.path.exists(init_file):
module_name = prefix + item
modules_to_test.append(module_name)
# Recursively check subdirectories
find_modules(item_path, module_name + '.')
elif item.endswith('.py') and not item.startswith('__'):
# Python module file
module_name = prefix + item[:-3] # Remove .py extension
modules_to_test.append(module_name)
Start discovery from src/
if os.path.exists('src'): find_modules('src', 'src.')
print('Testing Python module imports...') print('=' * 60) print('Auto-discovered {} modules'.format(len(modules_to_test))) print('=' * 60)
failed_imports = [] successful_imports = []
for module_name in modules_to_test: try: module = import(module_name, fromlist=['']) if hasattr(module, 'all'): exports = module.all print('[OK] {} ({} exports)'.format(module_name, len(exports))) elif hasattr(module, 'dict'): public_items = [k for k in module.dict.keys() if not k.startswith('_')] print('[OK] {} ({} public items)'.format(module_name, len(public_items))) else: print('[OK] {}'.format(module_name)) successful_imports.append(module_name) except Exception as e: print('[FAIL] {}: {}'.format(module_name, str(e))) failed_imports.append((module_name, str(e)))
print('=' * 60) print('Results: {} passed, {} failed'.format(len(successful_imports), len(failed_imports))) if failed_imports: print() print('Failed Imports:') for module, error in failed_imports: print(' - {}: {}'.format(module, error)) sys.exit(1) else: print() print('All imports successful!') sys.exit(0) "
2. **Report Results**:
- Shows count of auto-discovered modules
- If all imports successful: Exit with code 0
- If any imports failed: Show error details and exit with code 1
### How It Works
- Scans `backend/src/` directory recursively
- Finds all directories with `__init__.py` (packages)
- Finds all `.py` files (modules)
- Skips `__pycache__` and hidden directories
- Automatically tests all discovered modules
### Success Criteria
- All discovered modules import without errors
- No missing dependencies
- No circular import issues
- All exports are accessible
### Error Handling
If imports fail:
1. Check error message for missing dependencies (e.g., "No module named 'pydantic'")
2. Install missing dependencies: `pip install <package-name>`
3. Rerun the test-imports skill
4. Verify file structure matches module paths
5. Ensure `__init__.py` files exist in all package directories
### Benefits
- **Future-proof**: Automatically finds new modules as you add them
- **No maintenance**: No need to update hardcoded module list
- **Complete coverage**: Tests all modules in src/ directory
- **Consistent**: Uses the proven working test method
This skill should be run:
- After creating new modules or schemas
- After refactoring imports
- Before committing code changes
- To quickly verify all imports are working
Didn't find tool you were looking for?