69 lines
2.5 KiB
Python
69 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
"""Update test imports to use new structure."""
|
|
|
|
import re
|
|
from pathlib import Path
|
|
|
|
# Import mapping: old -> new
|
|
IMPORT_MAPPINGS = {
|
|
# Admin routes
|
|
r'from src\.web\.admin_routes import': 'from src.web.api.v1.admin.documents import',
|
|
r'from src\.web\.admin_annotation_routes import': 'from src.web.api.v1.admin.annotations import',
|
|
r'from src\.web\.admin_training_routes import': 'from src.web.api.v1.admin.training import',
|
|
|
|
# Auth and core
|
|
r'from src\.web\.admin_auth import': 'from src.web.core.auth import',
|
|
r'from src\.web\.admin_autolabel import': 'from src.web.services.autolabel import',
|
|
r'from src\.web\.admin_scheduler import': 'from src.web.core.scheduler import',
|
|
|
|
# Schemas
|
|
r'from src\.web\.admin_schemas import': 'from src.web.schemas.admin import',
|
|
r'from src\.web\.schemas import': 'from src.web.schemas.inference import',
|
|
|
|
# Services
|
|
r'from src\.web\.services import': 'from src.web.services.inference import',
|
|
r'from src\.web\.async_service import': 'from src.web.services.async_processing import',
|
|
r'from src\.web\.batch_upload_service import': 'from src.web.services.batch_upload import',
|
|
|
|
# Workers
|
|
r'from src\.web\.async_queue import': 'from src.web.workers.async_queue import',
|
|
r'from src\.web\.batch_queue import': 'from src.web.workers.batch_queue import',
|
|
|
|
# Routes
|
|
r'from src\.web\.routes import': 'from src.web.api.v1.routes import',
|
|
r'from src\.web\.async_routes import': 'from src.web.api.v1.async_api.routes import',
|
|
r'from src\.web\.batch_upload_routes import': 'from src.web.api.v1.batch.routes import',
|
|
}
|
|
|
|
def update_file(file_path: Path) -> bool:
|
|
"""Update imports in a single file."""
|
|
content = file_path.read_text(encoding='utf-8')
|
|
original_content = content
|
|
|
|
for old_pattern, new_import in IMPORT_MAPPINGS.items():
|
|
content = re.sub(old_pattern, new_import, content)
|
|
|
|
if content != original_content:
|
|
file_path.write_text(content, encoding='utf-8')
|
|
return True
|
|
return False
|
|
|
|
def main():
|
|
"""Update all test files."""
|
|
test_dir = Path('tests/web')
|
|
updated_files = []
|
|
|
|
for test_file in test_dir.glob('test_*.py'):
|
|
if update_file(test_file):
|
|
updated_files.append(test_file.name)
|
|
|
|
if updated_files:
|
|
print(f"✓ Updated {len(updated_files)} test files:")
|
|
for filename in sorted(updated_files):
|
|
print(f" - {filename}")
|
|
else:
|
|
print("No files needed updating")
|
|
|
|
if __name__ == '__main__':
|
|
main()
|