File size: 3,056 Bytes
83e3e20 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | """
Test script to verify app.py portability logic
Simulates app.py being in different locations
"""
from pathlib import Path
import sys
def test_portability_logic(app_location):
"""Test the portability logic as if app.py was at app_location"""
# Simulate app.py's __file__ being at app_location
print(f"\nπ Testing with app.py at: {app_location}")
print("-" * 60)
# This is the exact logic from app.py
webapp_parent = app_location.parent.parent
if (webapp_parent / 'config').exists():
PROJECT_ROOT = webapp_parent
location_type = "Original location (webapp/)"
else:
# app.py was moved - find project root by searching for config/
PROJECT_ROOT = app_location.parent
while PROJECT_ROOT != PROJECT_ROOT.parent: # Until root of filesystem
if (PROJECT_ROOT / 'config').exists() and (PROJECT_ROOT / 'src').exists():
break
PROJECT_ROOT = PROJECT_ROOT.parent
location_type = "Moved location (outside webapp/)"
# Determine webapp folder (for templates/static/uploads)
WEBAPP_FOLDER = PROJECT_ROOT / 'webapp'
# Print results
print(f"Location type: {location_type}")
print(f"PROJECT_ROOT: {PROJECT_ROOT}")
print(f"WEBAPP_FOLDER: {WEBAPP_FOLDER}")
# Verify all required folders exist
required_folders = ['config', 'src', 'webapp', 'ai_models', 'docs']
all_exist = True
print(f"\nRequired folders check:")
for folder in required_folders:
exists = (PROJECT_ROOT / folder).exists()
status = "β" if exists else "β"
print(f" {status} {folder}")
all_exist = all_exist and exists
# Check template and static folders
print(f"\nFlask folders check:")
templates_exist = (WEBAPP_FOLDER / 'templates').exists()
static_exist = (WEBAPP_FOLDER / 'static').exists()
print(f" {'β' if templates_exist else 'β'} templates/")
print(f" {'β' if static_exist else 'β'} static/")
return all_exist and templates_exist and static_exist
# Test 1: Original location (webapp/app.py)
project_root = Path(__file__).parent
result1 = test_portability_logic(project_root / 'webapp' / 'app.py')
# Test 2: Moved to project root (app.py)
result2 = test_portability_logic(project_root / 'app.py')
# Test 3: Moved to src (src/app.py)
result3 = test_portability_logic(project_root / 'src' / 'app.py')
# Summary
print("\n" + "=" * 60)
print("PORTABILITY TEST SUMMARY")
print("=" * 60)
print(f"β Original location (webapp/app.py): {'PASS' if result1 else 'FAIL'}")
print(f"{'β' if result2 else 'β'} Moved to root (app.py): {'PASS' if result2 else 'FAIL'}")
print(f"{'β' if result3 else 'β'} Moved to src (src/app.py): {'PASS' if result3 else 'FAIL'}")
if result1 and result2 and result3:
print("\nβ
app.py IS PORTABLE - Can be used anywhere in the project!")
else:
print("\nβ app.py is NOT fully portable")
|