Files
Oxicloud/tests/test-all-routes.py
T
2025-03-26 19:08:07 +01:00

80 lines
2.3 KiB
Python
Executable File

#!/usr/bin/env python3
import requests
import time
def test_route(url, method="GET", data=None, files=None):
"""Test a route and return the response"""
print(f"Testing {method} {url}")
try:
if method == "GET":
response = requests.get(url)
elif method == "POST":
response = requests.post(url, data=data, files=files)
elif method == "PUT":
response = requests.put(url, json=data)
elif method == "DELETE":
response = requests.delete(url)
else:
print(f"Unsupported method: {method}")
return None
print(f" Status: {response.status_code}")
if response.status_code < 400:
content_type = response.headers.get('Content-Type', '')
if 'json' in content_type:
try:
print(f" Response: {response.json()}")
except:
print(f" Response: {response.text[:100]}...")
else:
print(f" Response: {response.text[:100]}...")
else:
print(f" Error: {response.text}")
return response
except Exception as e:
print(f" Error: {e}")
return None
# Base URL
SERVER_URL = "http://localhost:8086"
print("Testing all routes to identify which ones are implemented in the custom server")
print("================================================================================")
# Test routes
routes = [
# Base
"/",
# API endpoints
"/api/folders",
"/api/files",
"/api/files?folder_id=folder-storage:1",
"/api/files/upload",
# Static files
"/css/style.css",
"/js/app.js",
"/locales/en.json",
# Auth routes
"/login",
"/api/auth/login",
]
# Run GET tests
for route in routes:
if route == "/api/files/upload":
continue # Skip for now, will test POST later
test_route(f"{SERVER_URL}{route}")
time.sleep(0.5) # Small delay between requests
# Test POST upload
print("\nTesting file upload...")
with open(__file__, "rb") as f: # Use __file__ to reference the current script regardless of location
files = {"file": f}
data = {"folder_id": "folder-storage:1"}
test_route(f"{SERVER_URL}/api/files/upload", method="POST", data=data, files=files)
print("\nTests completed")