Skip to content

Commit f4bc729

Browse files
authored
Clean up test mocking (#82)
1 parent 8bf6876 commit f4bc729

File tree

7 files changed

+94
-135
lines changed

7 files changed

+94
-135
lines changed

tests/test_audit_trail.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,10 @@ def test_create_audit_trail_event_succeeds(self, mock_request_method):
2626
"occurred_at": datetime.now().isoformat(),
2727
"metadata": {"a": "b"},
2828
}
29-
mock_response = Response()
30-
mock_response.status_code = 200
31-
mock_request_method("post", mock_response, 200)
29+
mock_request_method("post", {"success": True}, 200)
3230

33-
result = self.audit_trail.create_event(event)
34-
assert result == True
31+
response = self.audit_trail.create_event(event)
32+
assert response == True
3533

3634
def test_create_audit_trail_event_fails_with_long_metadata(self):
3735
with pytest.raises(ValueError, match=r"Number of metadata keys exceeds .*"):

tests/test_directory_sync.py

Lines changed: 39 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -113,71 +113,57 @@ def mock_directories(self):
113113
}
114114

115115
def test_list_users_with_directory(self, mock_users, mock_request_method):
116-
mock_response = Response()
117-
mock_response.status_code = 200
118-
mock_response.response_dict = mock_users
119-
mock_request_method("get", mock_response, 200)
120-
response = self.directory_sync.list_users(directory="directory_id")
121-
assert response.status_code == 200
122-
assert response.response_dict == mock_users
116+
mock_request_method("get", mock_users, 200)
117+
118+
users = self.directory_sync.list_users(directory="directory_id")
119+
120+
assert users == mock_users
123121

124122
def test_list_users_with_group(self, mock_users, mock_request_method):
125-
mock_response = Response()
126-
mock_response.status_code = 200
127-
mock_response.response_dict = mock_users
128-
mock_request_method("get", mock_response, 200)
129-
response = self.directory_sync.list_users(group="directory_grp_id")
130-
assert response.status_code == 200
131-
assert response.response_dict == mock_users
123+
mock_request_method("get", mock_users, 200)
124+
125+
users = self.directory_sync.list_users(group="directory_grp_id")
126+
127+
assert users == mock_users
132128

133129
def test_list_groups_with_directory(self, mock_groups, mock_request_method):
134-
mock_response = Response()
135-
mock_response.status_code = 200
136-
mock_response.response_dict = mock_groups
137-
mock_request_method("get", mock_response, 200)
138-
response = self.directory_sync.list_groups(directory="directory_id")
139-
assert response.status_code == 200
140-
assert response.response_dict == mock_groups
130+
mock_request_method("get", mock_groups, 200)
131+
132+
groups = self.directory_sync.list_groups(directory="directory_id")
133+
134+
assert groups == mock_groups
141135

142136
def test_list_groups_with_user(self, mock_groups, mock_request_method):
143-
mock_response = Response()
144-
mock_response.status_code = 200
145-
mock_response.response_dict = mock_groups
146-
mock_request_method("get", mock_response, 200)
147-
response = self.directory_sync.list_groups(user="directory_usr_id")
148-
assert response.status_code == 200
149-
assert response.response_dict == mock_groups
137+
mock_request_method("get", mock_groups, 200)
138+
139+
groups = self.directory_sync.list_groups(user="directory_usr_id")
140+
141+
assert groups == mock_groups
150142

151143
def test_get_user(self, mock_user, mock_request_method):
152-
mock_response = Response()
153-
mock_response.status_code = 200
154-
mock_response.response_dict = mock_user
155-
mock_request_method("get", mock_response, 200)
156-
response = self.directory_sync.get_user(user="directory_usr_id")
157-
assert response.status_code == 200
158-
assert response.response_dict == mock_user
144+
mock_request_method("get", mock_user, 200)
145+
146+
user = self.directory_sync.get_user(user="directory_usr_id")
147+
148+
assert user == mock_user
159149

160150
def test_get_group(self, mock_group, mock_request_method):
161-
mock_response = Response()
162-
mock_response.status_code = 200
163-
mock_response.response_dict = mock_group
164-
mock_request_method("get", mock_response, 200)
165-
response = self.directory_sync.get_group(group="directory_grp_id")
166-
assert response.status_code == 200
167-
assert response.response_dict == mock_group
151+
mock_request_method("get", mock_group, 200)
152+
153+
group = self.directory_sync.get_group(group="directory_grp_id")
154+
155+
assert group == mock_group
168156

169157
def test_list_directories(self, mock_directories, mock_request_method):
170-
mock_response = Response()
171-
mock_response.status_code = 200
172-
mock_response.response_dict = mock_directories
173-
mock_request_method("get", mock_response, 200)
174-
response = self.directory_sync.list_directories()
175-
assert response.status_code == 200
176-
assert response.response_dict == mock_directories
158+
mock_request_method("get", mock_directories, 200)
159+
160+
directories = self.directory_sync.list_directories()
161+
162+
assert directories == mock_directories
177163

178164
def test_delete_directory(self, mock_directories, mock_request_method):
179-
mock_response = Response()
180-
mock_response.status_code = 202
181-
mock_request_method("delete", mock_response, 202)
165+
mock_request_method("delete", None, 202)
166+
182167
response = self.directory_sync.delete_directory(directory="directory_id")
183-
assert response.status_code == 202
168+
169+
assert response is None

tests/test_organizations.py

Lines changed: 26 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -76,52 +76,42 @@ def mock_organizations(self):
7676
}
7777

7878
def test_list_organizations(self, mock_organizations, mock_request_method):
79-
mock_response = Response()
80-
mock_response.status_code = 200
81-
mock_response.response_dict = mock_organizations
82-
mock_request_method("get", mock_response, 200)
83-
response = self.organizations.list_organizations()
84-
assert response.status_code == 200
85-
assert len(response.response_dict["data"]) == 2
79+
mock_request_method("get", {"data": mock_organizations}, 200)
80+
81+
organizations_response = self.organizations.list_organizations()
82+
83+
assert organizations_response["data"] == mock_organizations
8684

8785
def test_get_organization(self, mock_organization, mock_request_method):
88-
mock_response = Response()
89-
mock_response.status_code = 200
90-
mock_response.response_dict = mock_organization
91-
mock_request_method("get", mock_response, 200)
92-
response = self.organizations.get_organization(organization="organization_id")
93-
assert response.status_code == 200
94-
assert response.response_dict == mock_organization
86+
mock_request_method("get", mock_organization, 200)
87+
88+
organization = self.organizations.get_organization(
89+
organization="organization_id"
90+
)
91+
92+
assert organization == mock_organization
9593

9694
def test_create_organization(self, mock_organization, mock_request_method):
97-
organization = {"domains": ["example.com"], "name": "Test Organization"}
98-
mock_response = Response()
99-
mock_response.status_code = 201
100-
mock_response.response_dict = mock_organization
101-
mock_request_method("post", mock_response, 201)
95+
mock_request_method("post", mock_organization, 201)
10296

103-
result = self.organizations.create_organization(organization)
104-
subject = result.response_dict
97+
payload = {"domains": ["example.com"], "name": "Test Organization"}
98+
organization = self.organizations.create_organization(payload)
10599

106-
assert subject["id"] == "org_01EHT88Z8J8795GZNQ4ZP1J81T"
107-
assert subject["name"] == "Test Organization"
100+
assert organization["id"] == "org_01EHT88Z8J8795GZNQ4ZP1J81T"
101+
assert organization["name"] == "Test Organization"
108102

109103
def test_update_organization(self, mock_organization_updated, mock_request_method):
110-
mock_response = Response()
111-
mock_response.status_code = 201
112-
mock_response.response_dict = mock_organization_updated
113-
mock_request_method("put", mock_response, 201)
104+
mock_request_method("put", mock_organization_updated, 201)
114105

115-
result = self.organizations.update_organization(
106+
updated_organization = self.organizations.update_organization(
116107
organization="org_01EHT88Z8J8795GZNQ4ZP1J81T",
117108
name="Example Organization",
118109
domains=["example.io"],
119110
)
120-
subject = result.response_dict
121111

122-
assert subject["id"] == "org_01EHT88Z8J8795GZNQ4ZP1J81T"
123-
assert subject["name"] == "Example Organization"
124-
assert subject["domains"] == [
112+
assert updated_organization["id"] == "org_01EHT88Z8J8795GZNQ4ZP1J81T"
113+
assert updated_organization["name"] == "Example Organization"
114+
assert updated_organization["domains"] == [
125115
{
126116
"domain": "example.io",
127117
"object": "organization_domain",
@@ -130,8 +120,8 @@ def test_update_organization(self, mock_organization_updated, mock_request_metho
130120
]
131121

132122
def test_delete_organization(self, setup, mock_request_method):
133-
mock_response = Response()
134-
mock_response.status_code = 204
135-
mock_request_method("delete", mock_response, 204)
123+
mock_request_method("delete", None, 202)
124+
136125
response = self.organizations.delete_organization(organization="connection_id")
137-
assert response.status_code == 204
126+
127+
assert response is None

tests/test_passwordless.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,15 @@ def mock_passwordless_session(self):
2525
def test_create_session_succeeds(
2626
self, mock_passwordless_session, mock_request_method
2727
):
28-
mock_response = Response()
29-
mock_response.status_code = 201
30-
mock_response.response_dict = mock_passwordless_session
31-
mock_request_method("post", mock_response, 201)
28+
mock_request_method("post", mock_passwordless_session, 201)
3229

3330
session_options = {
3431
"email": "[email protected]",
3532
"type": "MagicLink",
3633
}
37-
response = self.passwordless.create_session(session_options)
34+
passwordless_session = self.passwordless.create_session(session_options)
3835

39-
assert response.status_code == 201
40-
assert response.response_dict == mock_passwordless_session
36+
assert passwordless_session == mock_passwordless_session
4137

4238
def test_get_send_session_succeeds(self, mock_request_method):
4339
response = {
@@ -48,4 +44,5 @@ def test_get_send_session_succeeds(self, mock_request_method):
4844
response = self.passwordless.send_session(
4945
"passwordless_session_01EHDAK2BFGWCSZXP9HGZ3VK8C"
5046
)
47+
5148
assert response == True

tests/test_portal.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,15 @@ def mock_portal_link(self):
1717
return {"link": "https://id.workos.com/portal/launch?secret=secret"}
1818

1919
def test_generate_link_sso(self, mock_portal_link, mock_request_method):
20-
mock_response = Response()
21-
mock_response.status_code = 201
22-
mock_response.response_dict = mock_portal_link
23-
mock_request_method("post", mock_response, 201)
20+
mock_request_method("post", mock_portal_link, 201)
2421

25-
result = self.portal.generate_link("sso", "org_01EHQMYV6MBK39QC5PZXHY59C3")
26-
subject = result.response_dict
22+
response = self.portal.generate_link("sso", "org_01EHQMYV6MBK39QC5PZXHY59C3")
2723

28-
assert subject["link"] == "https://id.workos.com/portal/launch?secret=secret"
24+
assert response["link"] == "https://id.workos.com/portal/launch?secret=secret"
2925

3026
def test_generate_link_dsync(self, mock_portal_link, mock_request_method):
31-
mock_response = Response()
32-
mock_response.status_code = 201
33-
mock_response.response_dict = mock_portal_link
34-
mock_request_method("post", mock_response, 201)
27+
mock_request_method("post", mock_portal_link, 201)
3528

36-
result = self.portal.generate_link("dsync", "org_01EHQMYV6MBK39QC5PZXHY59C3")
37-
subject = result.response_dict
29+
response = self.portal.generate_link("dsync", "org_01EHQMYV6MBK39QC5PZXHY59C3")
3830

39-
assert subject["link"] == "https://id.workos.com/portal/launch?secret=secret"
31+
assert response["link"] == "https://id.workos.com/portal/launch?secret=secret"

tests/test_sso.py

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -217,28 +217,24 @@ def test_get_profile_and_token_returns_expected_workosprofile_object(
217217
def test_get_connection(
218218
self, setup_with_client_id, mock_connection, mock_request_method
219219
):
220-
mock_response = Response()
221-
mock_response.status_code = 200
222-
mock_response.response_dict = mock_connection
223-
mock_request_method("get", mock_response, 200)
224-
response = self.sso.get_connection(connection="connection_id")
225-
assert response.status_code == 200
226-
assert response.response_dict == mock_connection
220+
mock_request_method("get", mock_connection, 200)
221+
222+
connection = self.sso.get_connection(connection="connection_id")
223+
224+
assert connection == mock_connection
227225

228226
def test_list_connections(
229227
self, setup_with_client_id, mock_connections, mock_request_method
230228
):
231-
mock_response = Response()
232-
mock_response.status_code = 200
233-
mock_response.response_dict = mock_connections
234-
mock_request_method("get", mock_response, 200)
235-
response = self.sso.list_connections()
236-
assert response.status_code == 200
237-
assert response.response_dict == mock_connections
229+
mock_request_method("get", mock_connections, 200)
230+
231+
connections_response = self.sso.list_connections()
232+
233+
assert connections_response["data"] == mock_connections["data"]
238234

239235
def test_delete_connection(self, setup_with_client_id, mock_request_method):
240-
mock_response = Response()
241-
mock_response.status_code = 204
242-
mock_request_method("delete", mock_response, 204)
236+
mock_request_method("delete", None, 204)
237+
243238
response = self.sso.delete_connection(connection="connection_id")
244-
assert response.status_code == 204
239+
240+
assert response is None

workos/audit_trail.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,15 @@ def create_event(self, event, idempotency_key=None):
6161
"idempotency-key": idempotency_key,
6262
}
6363

64-
self.request_helper.request(
64+
response = self.request_helper.request(
6565
EVENTS_PATH,
6666
method=REQUEST_METHOD_POST,
6767
params=event,
6868
headers=headers,
6969
token=workos.api_key,
7070
)
7171

72-
return True
72+
return response["success"]
7373

7474
def get_events(
7575
self,

0 commit comments

Comments
 (0)