What a mess
This commit is contained in:
61
tests/test_db_init.py
Normal file
61
tests/test_db_init.py
Normal file
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test script to verify that init_db() creates all tables and indexes properly.
|
||||
This simulates a fresh database initialization.
|
||||
"""
|
||||
import asyncio
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, '/app')
|
||||
from api import database
|
||||
|
||||
async def test_init():
|
||||
"""Test database initialization"""
|
||||
print("Testing database initialization...")
|
||||
print("=" * 60)
|
||||
|
||||
try:
|
||||
# Initialize database (create tables and indexes)
|
||||
await database.init_db()
|
||||
print("✓ Database initialization completed successfully")
|
||||
|
||||
# Verify tables exist
|
||||
async with database.engine.begin() as conn:
|
||||
result = await conn.execute(database.text("""
|
||||
SELECT tablename
|
||||
FROM pg_tables
|
||||
WHERE schemaname = 'public'
|
||||
ORDER BY tablename;
|
||||
"""))
|
||||
tables = [row[0] for row in result]
|
||||
print(f"\n✓ Found {len(tables)} tables:")
|
||||
for table in tables:
|
||||
print(f" - {table}")
|
||||
|
||||
# Verify indexes exist
|
||||
result = await conn.execute(database.text("""
|
||||
SELECT tablename, indexname
|
||||
FROM pg_indexes
|
||||
WHERE schemaname = 'public' AND indexname LIKE 'idx_%'
|
||||
ORDER BY tablename, indexname;
|
||||
"""))
|
||||
indexes = list(result)
|
||||
print(f"\n✓ Found {len(indexes)} performance indexes:")
|
||||
for table, index in indexes:
|
||||
print(f" - {index} on {table}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("✓ All tests passed!")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n✗ Error during initialization: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return False
|
||||
finally:
|
||||
await database.engine.dispose()
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = asyncio.run(test_init())
|
||||
sys.exit(0 if success else 1)
|
||||
Reference in New Issue
Block a user