Skip to content

Commit 865aeb5

Browse files
fix: Allow organization_name to be empty on organization membership events (#595)
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
1 parent 0d50534 commit 865aeb5

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

src/workos/types/user_management/organization_membership.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class BaseOrganizationMembership(WorkOSModel):
1313
id: str
1414
user_id: str
1515
organization_id: str
16-
organization_name: str
16+
organization_name: Optional[str] = None
1717
status: LiteralOrUntyped[OrganizationMembershipStatus]
1818
directory_managed: bool = False
1919
created_at: str

tests/test_events.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from typing import Union
2+
23
import pytest
34

45
from tests.utils.fixtures.mock_event import MockEvent
@@ -86,3 +87,48 @@ def test_list_events_organization_membership_missing_custom_attributes(
8687
event = events.data[0]
8788
assert isinstance(event, OrganizationMembershipCreatedEvent)
8889
assert event.data.custom_attributes == {}
90+
91+
def test_list_events_organization_membership_missing_organization_name(
92+
self,
93+
module_instance: Union[Events, AsyncEvents],
94+
capture_and_mock_http_client_request,
95+
):
96+
mock_response = {
97+
"object": "list",
98+
"data": [
99+
{
100+
"object": "event",
101+
"id": "event_01234",
102+
"event": "organization_membership.created",
103+
"data": {
104+
"object": "organization_membership",
105+
"id": "om_01234",
106+
"user_id": "user_01234",
107+
"organization_id": "org_01234",
108+
"role": {"slug": "member"},
109+
"status": "active",
110+
"created_at": "2024-01-01T00:00:00.000Z",
111+
"updated_at": "2024-01-01T00:00:00.000Z",
112+
},
113+
"created_at": "2024-01-01T00:00:00.000Z",
114+
}
115+
],
116+
"list_metadata": {
117+
"after": None,
118+
},
119+
}
120+
121+
capture_and_mock_http_client_request(
122+
http_client=module_instance._http_client,
123+
status_code=200,
124+
response_dict=mock_response,
125+
)
126+
127+
events: EventsListResource = syncify(
128+
module_instance.list_events(events=["organization_membership.created"])
129+
)
130+
131+
event = events.data[0]
132+
assert isinstance(event, OrganizationMembershipCreatedEvent)
133+
assert event.data.organization_name is None
134+
assert event.data.custom_attributes == {}

0 commit comments

Comments
 (0)