From 098f3a993cb4ebd22114a87511035e2ef7a70ead Mon Sep 17 00:00:00 2001 From: James Braza Date: Thu, 12 Oct 2023 18:46:40 -0400 Subject: [PATCH 1/2] Added test that the WEBHOOK_PAYLOAD_EXAMPLE can be deserialized --- tests/test_webhooks_server.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/test_webhooks_server.py b/tests/test_webhooks_server.py index cc9aba40ec..fd5364f4a5 100644 --- a/tests/test_webhooks_server.py +++ b/tests/test_webhooks_server.py @@ -51,6 +51,12 @@ } +def test_deserialize_payload_example() -> None: + """Confirm that the test stub can actually be deserialized.""" + payload = WebhookPayload.parse_obj(WEBHOOK_PAYLOAD_EXAMPLE) + assert payload.event.scope == WEBHOOK_PAYLOAD_EXAMPLE["event"]["scope"] + + @require_webhooks class TestWebhooksServerDontRun(unittest.TestCase): def test_add_webhook_implicit_path(self): From bee3663efb349e4e5dad97d7bca608258057ba1c Mon Sep 17 00:00:00 2001 From: James Braza Date: Thu, 12 Oct 2023 18:53:48 -0400 Subject: [PATCH 2/2] Added defaults for Optional fields so tests can pass --- src/huggingface_hub/_webhooks_payload.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/huggingface_hub/_webhooks_payload.py b/src/huggingface_hub/_webhooks_payload.py index 5d66b99643..784131ea2e 100644 --- a/src/huggingface_hub/_webhooks_payload.py +++ b/src/huggingface_hub/_webhooks_payload.py @@ -55,7 +55,7 @@ class ObjectId(BaseModel): class WebhookPayloadUrl(BaseModel): web: str - api: Optional[str] + api: Optional[str] = None class WebhookPayloadMovedTo(BaseModel): @@ -74,7 +74,7 @@ class WebhookPayloadEvent(BaseModel): class WebhookPayloadDiscussionChanges(BaseModel): base: str - mergeCommitId: Optional[str] + mergeCommitId: Optional[str] = None class WebhookPayloadComment(ObjectId): @@ -92,16 +92,16 @@ class WebhookPayloadDiscussion(ObjectId): isPullRequest: bool status: DiscussionStatus_T changes: Optional[WebhookPayloadDiscussionChanges] - pinned: Optional[bool] + pinned: Optional[bool] = None class WebhookPayloadRepo(ObjectId): owner: ObjectId - head_sha: Optional[str] + head_sha: Optional[str] = None name: str private: bool - subdomain: Optional[str] - tags: Optional[List[str]] + subdomain: Optional[str] = None + tags: Optional[List[str]] = None type: Literal["dataset", "model", "space"] url: WebhookPayloadUrl @@ -112,4 +112,4 @@ class WebhookPayload(BaseModel): discussion: Optional[WebhookPayloadDiscussion] comment: Optional[WebhookPayloadComment] webhook: WebhookPayloadWebhook - movedTo: Optional[WebhookPayloadMovedTo] + movedTo: Optional[WebhookPayloadMovedTo] = None