mirror of
https://github.com/dnlbauer/cordra-mcp.git
synced 2026-09-10 13:45:30 +00:00
fix: cordapy response parsing
This commit is contained in:
@@ -54,9 +54,8 @@ class CordraClient:
|
||||
CordraClientError: For other API errors
|
||||
"""
|
||||
try:
|
||||
# Use CordraPy to read the object
|
||||
cordra_obj = cordra.CordraObject.read(
|
||||
host=self.config.cordra_url, # type: ignore
|
||||
cordra_obj: dict[str, Any] = cordra.CordraObject.read(
|
||||
host=self.config.cordra_url, #type: ignore
|
||||
obj_id=object_id,
|
||||
username=self.config.username,
|
||||
password=self.config.password,
|
||||
@@ -66,11 +65,11 @@ class CordraClient:
|
||||
|
||||
return DigitalObject(
|
||||
id=object_id,
|
||||
type=getattr(cordra_obj, 'type', ''),
|
||||
content=getattr(cordra_obj, 'content', {}),
|
||||
metadata=getattr(cordra_obj, 'metadata', None),
|
||||
acl=getattr(cordra_obj, 'acl', None),
|
||||
payloads=getattr(cordra_obj, 'payloads', None),
|
||||
type=cordra_obj['type'],
|
||||
content=cordra_obj['content'],
|
||||
metadata=cordra_obj.get('metadata'),
|
||||
acl=cordra_obj.get('acl'),
|
||||
payloads=cordra_obj.get('payloads'),
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""Unit tests for the Cordra client."""
|
||||
|
||||
from unittest.mock import Mock, patch
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -32,27 +32,27 @@ def client(config):
|
||||
|
||||
@pytest.fixture
|
||||
def mock_cordra_object():
|
||||
"""Create a mock CordraObject."""
|
||||
mock_obj = Mock()
|
||||
mock_obj.type = "TestType"
|
||||
mock_obj.content = {"title": "Test Object", "description": "A test object"}
|
||||
mock_obj.metadata = {"created": "2023-01-01", "modified": "2023-01-02"}
|
||||
mock_obj.acl = {"read": ["public"], "write": ["admin"]}
|
||||
mock_obj.payloads = [
|
||||
{
|
||||
"name": "file1.txt",
|
||||
"filename": "file1.txt",
|
||||
"size": 1024,
|
||||
"mediaType": "text/plain"
|
||||
},
|
||||
{
|
||||
"name": "file2.pdf",
|
||||
"filename": "file2.pdf",
|
||||
"size": 2048,
|
||||
"mediaType": "application/pdf"
|
||||
}
|
||||
]
|
||||
return mock_obj
|
||||
"""Create a mock CordraObject response (dictionary)."""
|
||||
return {
|
||||
"type": "TestType",
|
||||
"content": {"title": "Test Object", "description": "A test object"},
|
||||
"metadata": {"created": "2023-01-01", "modified": "2023-01-02"},
|
||||
"acl": {"read": ["public"], "write": ["admin"]},
|
||||
"payloads": [
|
||||
{
|
||||
"name": "file1.txt",
|
||||
"filename": "file1.txt",
|
||||
"size": 1024,
|
||||
"mediaType": "text/plain"
|
||||
},
|
||||
{
|
||||
"name": "file2.pdf",
|
||||
"filename": "file2.pdf",
|
||||
"size": 2048,
|
||||
"mediaType": "application/pdf"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
class TestDigitalObject:
|
||||
|
||||
Reference in New Issue
Block a user