Files
railseek6/test_webui_upload_auth.py

80 lines
2.8 KiB
Python

import requests
import os
import json
def test_webui_upload():
base_url = "http://localhost:3015"
# Check if server is running
try:
response = requests.get(f"{base_url}/")
print(f"Server status: {response.status_code}")
except Exception as e:
print(f"Cannot connect to server: {e}")
return
# First, we need to login since JWT is enabled
login_url = f"{base_url}/login"
login_data = {
"username": "jleu3482",
"password": "jleu1212",
"grant_type": "password",
"scope": "",
"client_id": None,
"client_secret": None
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
try:
print("Logging in...")
response = requests.post(login_url, data=login_data, headers=headers)
print(f"Login response status: {response.status_code}")
if response.status_code == 200:
token_data = response.json()
access_token = token_data.get("access_token")
print(f"Login successful, token obtained")
# Now try upload with authentication - use correct endpoint
test_file = "ocr.pdf"
if not os.path.exists(test_file):
print(f"Test file {test_file} not found")
return
# Upload the file to the correct endpoint
files = {'file': (test_file, open(test_file, 'rb'), 'application/pdf')}
print(f"Uploading {test_file} to web UI...")
response = requests.post(f"{base_url}/documents/upload", files=files, headers={"Authorization": f"Bearer {access_token}"})
print(f"Upload response status: {response.status_code}")
print(f"Upload response: {response.text}")
if response.status_code == 200:
result = response.json()
print(f"Upload result: {json.dumps(result, indent=2)}")
else:
print(f"Upload failed with status {response.status_code}")
else:
print(f"Login failed: {response.text}")
except Exception as e:
print(f"Error: {e}")
# Also test the documents endpoint to see current documents
try:
print("\nChecking current documents...")
if 'access_token' in locals():
auth_headers = {"Authorization": f"Bearer {access_token}"}
response = requests.get(f"{base_url}/documents", headers=auth_headers)
print(f"Documents status: {response.status_code}")
if response.status_code == 200:
docs = response.json()
print(f"Current documents: {json.dumps(docs, indent=2)}")
except Exception as e:
print(f"Documents check error: {e}")
if __name__ == "__main__":
test_webui_upload()