Add structured workflow result models for video and document uploads; update client methods and examples
This commit is contained in:
parent
6d54c5900c
commit
00539b4fb2
5 changed files with 98 additions and 26 deletions
|
|
@ -36,7 +36,14 @@ from ebay_client.generated.notification.models import (
|
|||
UpdateSubscriptionRequest,
|
||||
)
|
||||
from ebay_client.inventory.client import InventoryClient
|
||||
from ebay_client.media.client import CreatedMediaResource, MediaClient, extract_resource_id, guess_media_content_type
|
||||
from ebay_client.media.client import (
|
||||
CreatedMediaResource,
|
||||
DocumentWorkflowResult,
|
||||
MediaClient,
|
||||
VideoWorkflowResult,
|
||||
extract_resource_id,
|
||||
guess_media_content_type,
|
||||
)
|
||||
from ebay_client.notification.client import NotificationClient
|
||||
|
||||
|
||||
|
|
@ -593,7 +600,10 @@ def test_media_create_upload_and_wait_video_orchestrates_flow(monkeypatch) -> No
|
|||
poll_interval_seconds=0.0,
|
||||
)
|
||||
|
||||
assert result.videoId == "VIDEO-9"
|
||||
assert isinstance(result, VideoWorkflowResult)
|
||||
assert result.video_id == "VIDEO-9"
|
||||
assert result.video.videoId == "VIDEO-9"
|
||||
assert result.created.resource_id == "VIDEO-9"
|
||||
assert calls[0][0] == "create_video"
|
||||
assert calls[1] == (
|
||||
"upload_video",
|
||||
|
|
@ -636,7 +646,11 @@ def test_media_create_upload_and_wait_document_orchestrates_flow(monkeypatch) ->
|
|||
poll_interval_seconds=0.0,
|
||||
)
|
||||
|
||||
assert result.documentStatus == "ACCEPTED"
|
||||
assert isinstance(result, DocumentWorkflowResult)
|
||||
assert result.document_id == "DOC-9"
|
||||
assert result.created.documentId == "DOC-9"
|
||||
assert result.uploaded is not None and result.uploaded.documentStatus == "SUBMITTED"
|
||||
assert result.document.documentStatus == "ACCEPTED"
|
||||
assert calls[0][0] == "create_document"
|
||||
assert calls[1] == (
|
||||
"upload_document",
|
||||
|
|
@ -679,7 +693,11 @@ def test_media_create_document_from_url_and_wait_orchestrates_flow(monkeypatch)
|
|||
poll_interval_seconds=0.0,
|
||||
)
|
||||
|
||||
assert result.documentStatus == "ACCEPTED"
|
||||
assert isinstance(result, DocumentWorkflowResult)
|
||||
assert result.document_id == "DOC-10"
|
||||
assert result.created.documentId == "DOC-10"
|
||||
assert result.uploaded is None
|
||||
assert result.document.documentStatus == "ACCEPTED"
|
||||
assert calls[0][0] == "create_document_from_url"
|
||||
assert calls[1] == (
|
||||
"wait_for_document",
|
||||
|
|
@ -788,7 +806,12 @@ def test_media_create_upload_and_wait_document_from_path_reads_file_and_delegate
|
|||
client,
|
||||
"create_upload_and_wait_document",
|
||||
lambda payload, **kwargs: captured.update({"payload": payload, **kwargs})
|
||||
or DocumentResponse(documentId="DOC-77", documentStatus="ACCEPTED"),
|
||||
or DocumentWorkflowResult(
|
||||
created=CreateDocumentResponse(documentId="DOC-77", documentStatus="PENDING_UPLOAD"),
|
||||
uploaded=DocumentResponse(documentId="DOC-77", documentStatus="SUBMITTED"),
|
||||
document=DocumentResponse(documentId="DOC-77", documentStatus="ACCEPTED"),
|
||||
document_id="DOC-77",
|
||||
),
|
||||
)
|
||||
|
||||
result = client.create_upload_and_wait_document_from_path(
|
||||
|
|
@ -797,7 +820,8 @@ def test_media_create_upload_and_wait_document_from_path_reads_file_and_delegate
|
|||
poll_interval_seconds=0.0,
|
||||
)
|
||||
|
||||
assert result.documentStatus == "ACCEPTED"
|
||||
assert isinstance(result, DocumentWorkflowResult)
|
||||
assert result.document.documentStatus == "ACCEPTED"
|
||||
assert captured["file_name"] == "guide.pdf"
|
||||
assert captured["content"] == b"%PDF-1.7"
|
||||
assert captured["content_type"] == "application/pdf"
|
||||
|
|
@ -815,7 +839,11 @@ def test_media_create_upload_and_wait_video_from_path_builds_payload_and_delegat
|
|||
client,
|
||||
"create_upload_and_wait_video",
|
||||
lambda payload, **kwargs: captured.update({"payload": payload, **kwargs})
|
||||
or Video(videoId="VIDEO-88", status="LIVE"),
|
||||
or VideoWorkflowResult(
|
||||
created=CreatedMediaResource(resource_id="VIDEO-88"),
|
||||
video=Video(videoId="VIDEO-88", status="LIVE"),
|
||||
video_id="VIDEO-88",
|
||||
),
|
||||
)
|
||||
|
||||
result = client.create_upload_and_wait_video_from_path(
|
||||
|
|
@ -824,7 +852,8 @@ def test_media_create_upload_and_wait_video_from_path_builds_payload_and_delegat
|
|||
poll_interval_seconds=0.0,
|
||||
)
|
||||
|
||||
assert result.videoId == "VIDEO-88"
|
||||
assert isinstance(result, VideoWorkflowResult)
|
||||
assert result.video.videoId == "VIDEO-88"
|
||||
payload = captured["payload"]
|
||||
assert isinstance(payload, CreateVideoRequest)
|
||||
assert payload.title == "demo"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue