File size: 3,409 Bytes
c2fe03b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/env python3
"""Quick functionality verification script"""
from fastapi.testclient import TestClient
from app import app

def main():
    print("=" * 60)
    print("FUNCTIONALITY VERIFICATION")
    print("=" * 60)
    print()
    
    client = TestClient(app)
    results = []
    
    # Test root endpoint
    print("1. Testing Root Endpoint (/):")
    r = client.get("/")
    data = r.json()
    success = r.status_code == 200 and data["name"] == "isolated-sandbox"
    status = "[PASS]" if success else "[FAIL]"
    print(f"   {status} - Status: {r.status_code}, Name: {data['name']}")
    results.append(("Root Endpoint", success))
    print()
    
    # Test health endpoint
    print("2. Testing Health Endpoint (/health):")
    r = client.get("/health")
    h = r.json()
    success = r.status_code == 200 and h["status"] == "healthy"
    status = "[PASS]" if success else "[FAIL]"
    print(f"   {status} - Status: {r.status_code}, Docker: {h['docker']}")
    results.append(("Health Endpoint", success))
    print()
    
    # Test languages endpoint
    print("3. Testing Languages Endpoint (/languages):")
    r = client.get("/languages")
    data = r.json()
    success = r.status_code == 200 and "languages" in data
    status = "[PASS]" if success else "[FAIL]"
    print(f"   {status} - Status: {r.status_code}, Languages: {len(data.get('languages', []))}")
    results.append(("Languages Endpoint", success))
    print()
    
    # Test UI rules endpoint
    print("4. Testing UI Rules Endpoint (/ui-rules):")
    r = client.get("/ui-rules")
    success = r.status_code == 200 and "text/html" in r.headers.get("content-type", "")
    status = "[PASS]" if success else "[FAIL]"
    print(f"   {status} - Status: {r.status_code}, Content-Type: {r.headers.get('content-type', 'unknown')}")
    print(f"   Content Size: {len(r.text)} bytes")
    results.append(("UI Rules Endpoint", success))
    print()
    
    # Test docs endpoint (should redirect or return OpenAPI schema)
    print("5. Testing Docs Endpoint (/docs):")
    r = client.get("/docs")
    success = r.status_code in [200, 307]  # 200 for HTML or 307 for redirect
    status = "[PASS]" if success else "[FAIL]"
    print(f"   {status} - Status: {r.status_code}")
    results.append(("Docs Endpoint", success))
    print()
    
    # Test OpenAPI schema
    print("6. Testing OpenAPI Schema (/openapi.json):")
    r = client.get("/openapi.json")
    data = r.json() if r.status_code == 200 else {}
    success = r.status_code == 200 and data.get("info", {}).get("title") == "isolated-sandbox"
    status = "[PASS]" if success else "[FAIL]"
    print(f"   {status} - Status: {r.status_code}, Title: {data.get('info', {}).get('title', 'N/A')}")
    results.append(("OpenAPI Schema", success))
    print()
    
    # Summary
    print("=" * 60)
    print("VERIFICATION SUMMARY")
    print("=" * 60)
    
    passed = sum(1 for _, s in results if s)
    total = len(results)
    
    for name, success in results:
        status = "[PASS]" if success else "[FAIL]"
        print(f"{status} - {name}")
    
    print()
    print(f"Results: {passed}/{total} endpoints verified")
    
    if passed == total:
        print("[SUCCESS] All functionality verified successfully!")
        return 0
    else:
        print("[FAILED] Some endpoints failed verification")
        return 1

if __name__ == "__main__":
    exit(main())