diff --git a/src/workos/types/user_management/organization_membership.py b/src/workos/types/user_management/organization_membership.py index 5c7bda0f..67ba1f21 100644 --- a/src/workos/types/user_management/organization_membership.py +++ b/src/workos/types/user_management/organization_membership.py @@ -1,4 +1,5 @@ from typing import Any, Literal, Mapping, Optional, Sequence + from typing_extensions import TypedDict from workos.types.workos_model import WorkOSModel @@ -21,6 +22,6 @@ class OrganizationMembership(WorkOSModel): role: OrganizationMembershipRole roles: Optional[Sequence[OrganizationMembershipRole]] = None status: LiteralOrUntyped[OrganizationMembershipStatus] - custom_attributes: Mapping[str, Any] + custom_attributes: Mapping[str, Any] = {} created_at: str updated_at: str diff --git a/tests/test_events.py b/tests/test_events.py index 6bc003c3..d516d506 100644 --- a/tests/test_events.py +++ b/tests/test_events.py @@ -4,6 +4,7 @@ from tests.utils.fixtures.mock_event import MockEvent from tests.utils.syncify import syncify from workos.events import AsyncEvents, Events, EventsListResource +from workos.types.events import OrganizationMembershipCreatedEvent @pytest.mark.sync_and_async(Events, AsyncEvents) @@ -40,3 +41,47 @@ def test_list_events( assert request_kwargs["method"] == "get" assert request_kwargs["params"] == {"events": ["dsync.activated"], "limit": 10} assert events.dict() == mock_events + + def test_list_events_organization_membership_missing_custom_attributes( + self, + module_instance: Union[Events, AsyncEvents], + capture_and_mock_http_client_request, + ): + mock_response = { + "object": "list", + "data": [ + { + "object": "event", + "id": "event_01234", + "event": "organization_membership.created", + "data": { + "object": "organization_membership", + "id": "om_01234", + "user_id": "user_01234", + "organization_id": "org_01234", + "role": {"slug": "member"}, + "status": "active", + "created_at": "2024-01-01T00:00:00.000Z", + "updated_at": "2024-01-01T00:00:00.000Z", + }, + "created_at": "2024-01-01T00:00:00.000Z", + } + ], + "list_metadata": { + "after": None, + }, + } + + capture_and_mock_http_client_request( + http_client=module_instance._http_client, + status_code=200, + response_dict=mock_response, + ) + + events: EventsListResource = syncify( + module_instance.list_events(events=["organization_membership.created"]) + ) + + event = events.data[0] + assert isinstance(event, OrganizationMembershipCreatedEvent) + assert event.data.custom_attributes == {}