51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script to fix import statements in test files
|
|
"""
|
|
|
|
import os
|
|
import re
|
|
from pathlib import Path
|
|
|
|
def fix_imports_in_file(file_path):
|
|
"""Fix import statements in a test file"""
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
# Fix relative imports to absolute imports from api package
|
|
content = re.sub(r'from \.(\w+) import', r'from \1 import', content)
|
|
content = re.sub(r'import \.(\w+)', r'import \1', content)
|
|
|
|
# Add path setup if not present
|
|
if 'sys.path.insert' not in content and 'api_dir' not in content:
|
|
path_setup = '''import sys
|
|
from pathlib import Path
|
|
|
|
# Add api directory to path
|
|
api_dir = Path(__file__).parent.parent / 'api'
|
|
sys.path.insert(0, str(api_dir))
|
|
|
|
'''
|
|
# Insert after the first import line
|
|
lines = content.split('\n')
|
|
for i, line in enumerate(lines):
|
|
if line.startswith('import ') or line.startswith('from '):
|
|
lines.insert(i, path_setup.rstrip())
|
|
break
|
|
content = '\n'.join(lines)
|
|
|
|
with open(file_path, 'w', encoding='utf-8') as f:
|
|
f.write(content)
|
|
|
|
print(f"Fixed imports in {file_path}")
|
|
|
|
def main():
|
|
"""Fix all test files"""
|
|
tests_dir = Path('tests')
|
|
|
|
for test_file in tests_dir.glob('test_*.py'):
|
|
if test_file.name not in ['test_cli_tool.py', 'test_peer_registry.py']: # Already fixed
|
|
fix_imports_in_file(test_file)
|
|
|
|
if __name__ == '__main__':
|
|
main() |