fix: cordapy response parsing

This commit is contained in:
daniel
2025-06-29 13:54:15 +02:00
parent 2cca4adeb8
commit fed4c26f21
2 changed files with 29 additions and 30 deletions

View File

@@ -54,8 +54,7 @@ class CordraClient:
CordraClientError: For other API errors
"""
try:
# Use CordraPy to read the object
cordra_obj = cordra.CordraObject.read(
cordra_obj: dict[str, Any] = cordra.CordraObject.read(
host=self.config.cordra_url, #type: ignore
obj_id=object_id,
username=self.config.username,
@@ -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:

View File

@@ -1,6 +1,6 @@
"""Unit tests for the Cordra client."""
from unittest.mock import Mock, patch
from unittest.mock import patch
import pytest
@@ -32,13 +32,13 @@ 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 = [
"""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",
@@ -52,7 +52,7 @@ def mock_cordra_object():
"mediaType": "application/pdf"
}
]
return mock_obj
}
class TestDigitalObject: