80 lines
2.8 KiB
Python
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() |