Spaces:
Running
Running
| import requests | |
| import time | |
| import sqlite3 | |
| import os | |
| BASE_URL = "http://127.0.0.1:8001" | |
| DB_PATH = "prisma/dev.db" | |
| def wait_for_server(): | |
| for _ in range(60): | |
| try: | |
| resp = requests.get(BASE_URL) | |
| if resp.status_code == 200: | |
| print("Server is up!") | |
| return True | |
| except: | |
| pass | |
| time.sleep(1) | |
| print("Server failed to start.") | |
| return False | |
| def test_webhook_accessibility(): | |
| url = f"{BASE_URL}/api/subscription/webhook" | |
| print(f"Testing Webhook Availability: {url}") | |
| try: | |
| # Send empty payload without signature - should fail with 400 | |
| resp = requests.post(url, json={}) | |
| if resp.status_code == 400: | |
| print("Webhook Endpoint is Reachable (Got expected 400 Bad Request)") | |
| else: | |
| print(f"Unexpected Status: {resp.status_code} {resp.text}") | |
| except Exception as e: | |
| print(f"Request Error: {e}") | |
| def test_db_accessibility(): | |
| print(f"Testing DB Access: {DB_PATH}") | |
| if os.path.exists(DB_PATH): | |
| try: | |
| conn = sqlite3.connect(DB_PATH) | |
| # Just verify we can query sqlite_master | |
| cursor = conn.cursor() | |
| cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='User';") | |
| result = cursor.fetchone() | |
| if result: | |
| print("DB Connection Success: 'User' table found.") | |
| else: | |
| print("DB Connection Success but 'User' table NOT found.") | |
| conn.close() | |
| except Exception as e: | |
| print(f"DB Connection Failed: {e}") | |
| else: | |
| print(f"DB File Not Found at {DB_PATH}") | |
| if __name__ == "__main__": | |
| if wait_for_server(): | |
| test_webhook_accessibility() | |
| test_db_accessibility() | |