Add support for attachments in notes
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python
|
||||
import sys
|
||||
import os
|
||||
import base64
|
||||
from nextcloud_mcp_server.client import NextcloudClient
|
||||
import logging
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def test_webdav_auth():
|
||||
"""
|
||||
Test function to verify WebDAV authentication and compare with current implementation.
|
||||
"""
|
||||
# Create client using standard method
|
||||
client = NextcloudClient.from_env()
|
||||
print("Client authentication type:", type(client._client.auth).__name__)
|
||||
|
||||
# Get WebDAV base path
|
||||
username = os.environ["NEXTCLOUD_USERNAME"]
|
||||
password = os.environ["NEXTCLOUD_PASSWORD"]
|
||||
webdav_base = client._get_webdav_base_path()
|
||||
|
||||
# Test path for Notes directory
|
||||
notes_path = f"{webdav_base}/Notes"
|
||||
print(f"Testing WebDAV access to: {notes_path}")
|
||||
|
||||
# 1. Test with existing client auth
|
||||
try:
|
||||
print("\nTest 1: Using existing client authentication")
|
||||
response = client._client.request("PROPFIND", notes_path, headers={"Depth": "0"})
|
||||
print(f"Status code: {response.status_code}")
|
||||
if response.status_code >= 400:
|
||||
print(f"Error: {response.text}")
|
||||
else:
|
||||
print("Success! Current auth method works")
|
||||
except Exception as e:
|
||||
print(f"Error: {str(e)}")
|
||||
|
||||
# 2. Test with explicit Authorization header
|
||||
try:
|
||||
print("\nTest 2: Using explicit Authorization header")
|
||||
# Create base64 encoded credentials
|
||||
auth_string = f"{username}:{password}"
|
||||
auth_bytes = auth_string.encode('ascii')
|
||||
base64_bytes = base64.b64encode(auth_bytes)
|
||||
base64_auth = base64_bytes.decode('ascii')
|
||||
|
||||
# Make request with explicit Authorization header
|
||||
headers = {
|
||||
"Depth": "0",
|
||||
"Authorization": f"Basic {base64_auth}"
|
||||
}
|
||||
|
||||
# Use client without auth to test explicit header
|
||||
response = client._client.request(
|
||||
"PROPFIND",
|
||||
notes_path,
|
||||
headers=headers,
|
||||
auth=None # Override client auth
|
||||
)
|
||||
|
||||
print(f"Status code: {response.status_code}")
|
||||
if response.status_code >= 400:
|
||||
print(f"Error: {response.text}")
|
||||
else:
|
||||
print("Success! Explicit authorization header works")
|
||||
except Exception as e:
|
||||
print(f"Error: {str(e)}")
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(test_webdav_auth())
|
||||
Reference in New Issue
Block a user