Skip to content

Commit 246c242

Browse files
committed
test(session): replace assert len(mock_req.request_history) == N checks with specific request filtering
Signed-off-by: Teo <teocns@gmail.com>
1 parent 395bf10 commit 246c242

File tree

1 file changed

+59
-48
lines changed

1 file changed

+59
-48
lines changed

tests/unit/test_session.py

Lines changed: 59 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,27 @@ def test_session(self, mock_req):
4343
agentops.record(ActionEvent(self.event_type))
4444

4545
time.sleep(0.1)
46-
# 3 Requests: check_for_updates, start_session, create_events (2 in 1)
47-
assert len(mock_req.request_history) == 3
48-
time.sleep(0.15)
4946

50-
assert (
51-
mock_req.last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session.session_id)]}"
52-
)
53-
request_json = mock_req.last_request.json()
47+
# Find event requests
48+
event_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
49+
assert len(event_requests) > 0
50+
last_event_request = event_requests[-1]
51+
52+
assert last_event_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session.session_id)]}"
53+
request_json = last_event_request.json()
5454
assert request_json["events"][0]["event_type"] == self.event_type
5555

5656
end_state = "Success"
5757
agentops.end_session(end_state)
5858
time.sleep(0.15)
5959

60-
# We should have 4 requests (additional end session)
61-
assert len(mock_req.request_history) == 4
62-
assert (
63-
mock_req.last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session.session_id)]}"
64-
)
65-
request_json = mock_req.last_request.json()
60+
# Find session end request
61+
end_session_requests = [r for r in mock_req.request_history if "/v2/update_session" in r.url]
62+
assert len(end_session_requests) > 0
63+
last_end_request = end_session_requests[-1]
64+
65+
assert last_end_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session.session_id)]}"
66+
request_json = last_end_request.json()
6667
assert request_json["session"]["end_state"] == end_state
6768
assert len(request_json["session"]["tags"]) == 0
6869

@@ -80,9 +81,13 @@ def test_add_tags(self, mock_req):
8081
agentops.end_session(end_state)
8182
time.sleep(0.15)
8283

83-
# Assert 3 requests, 1 for session init, 1 for event, 1 for end session
84-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
85-
request_json = mock_req.last_request.json()
84+
# Find session end request
85+
end_session_requests = [r for r in mock_req.request_history if "/v2/update_session" in r.url]
86+
assert len(end_session_requests) > 0
87+
last_end_request = end_session_requests[-1]
88+
89+
assert last_end_request.headers["X-Agentops-Api-Key"] == self.api_key
90+
request_json = last_end_request.json()
8691
assert request_json["session"]["end_state"] == end_state
8792
assert request_json["session"]["tags"] == ["GPT-4", "test-tag", "dupe-tag"]
8893

@@ -101,10 +106,13 @@ def test_tags(self, mock_req):
101106
agentops.end_session(end_state)
102107
time.sleep(0.15)
103108

104-
# 4 requests: check_for_updates, start_session, record_event, end_session
105-
assert len(mock_req.request_history) == 4
106-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
107-
request_json = mock_req.last_request.json()
109+
# Find session end request
110+
end_session_requests = [r for r in mock_req.request_history if "/v2/update_session" in r.url]
111+
assert len(end_session_requests) > 0
112+
last_end_request = end_session_requests[-1]
113+
114+
assert last_end_request.headers["X-Agentops-Api-Key"] == self.api_key
115+
request_json = last_end_request.json()
108116
assert request_json["session"]["end_state"] == end_state
109117
assert request_json["session"]["tags"] == tags
110118

@@ -115,9 +123,14 @@ def test_inherit_session_id(self, mock_req):
115123
inherited_id = "4f72e834-ff26-4802-ba2d-62e7613446f1"
116124
agentops.start_session(tags=["test"], inherited_session_id=inherited_id)
117125

126+
# Find session start request
127+
start_session_requests = [r for r in mock_req.request_history if "/v2/create_session" in r.url]
128+
assert len(start_session_requests) > 0
129+
last_start_request = start_session_requests[-1]
130+
118131
# Act
119132
# session_id correct
120-
request_json = mock_req.last_request.json()
133+
request_json = last_start_request.json()
121134
assert request_json["session"]["session_id"] == inherited_id
122135

123136
# Act
@@ -247,54 +260,52 @@ def test_two_sessions(self, mock_req):
247260
]
248261
time.sleep(0.1)
249262

250-
# Requests: check_for_updates, 2 start_session
251-
assert len(mock_req.request_history) == 3
252-
253263
session_1.record(ActionEvent(self.event_type))
254264
session_2.record(ActionEvent(self.event_type))
255265

256266
time.sleep(1.5)
257267

258-
# 5 requests: check_for_updates, 2 start_session, 2 record_event
259-
assert len(mock_req.request_history) == 5
260-
261-
# Check the last two requests instead of just the last one
262-
last_request = mock_req.request_history[-1]
263-
second_last_request = mock_req.request_history[-2]
268+
# Find event requests
269+
event_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
270+
assert len(event_requests) >= 2
264271

265272
# Verify session_1's request
273+
session_1_request = event_requests[-2]
266274
assert (
267-
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
275+
session_1_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
268276
)
269-
assert second_last_request.json()["events"][0]["event_type"] == self.event_type
277+
assert session_1_request.json()["events"][0]["event_type"] == self.event_type
270278

271279
# Verify session_2's request
272-
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
273-
assert last_request.json()["events"][0]["event_type"] == self.event_type
280+
session_2_request = event_requests[-1]
281+
assert (
282+
session_2_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
283+
)
284+
assert session_2_request.json()["events"][0]["event_type"] == self.event_type
274285

275286
end_state = "Success"
276287

277288
session_1.end_session(end_state)
278289
time.sleep(1.5)
279290

280-
# Additional end session request
281-
assert len(mock_req.request_history) == 6
282-
assert (
283-
mock_req.last_request.headers["Authorization"]
284-
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
285-
)
286-
request_json = mock_req.last_request.json()
291+
# Find session end requests
292+
end_session_requests = [r for r in mock_req.request_history if "/v2/update_session" in r.url]
293+
assert len(end_session_requests) > 0
294+
session_1_end = end_session_requests[-1]
295+
296+
assert session_1_end.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
297+
request_json = session_1_end.json()
287298
assert request_json["session"]["end_state"] == end_state
288299
assert len(request_json["session"]["tags"]) == 0
289300

290301
session_2.end_session(end_state)
291-
# Additional end session request
292-
assert len(mock_req.request_history) == 7
293-
assert (
294-
mock_req.last_request.headers["Authorization"]
295-
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
296-
)
297-
request_json = mock_req.last_request.json()
302+
time.sleep(0.1)
303+
304+
# Verify session 2 end request
305+
end_session_requests = [r for r in mock_req.request_history if "/v2/update_session" in r.url]
306+
session_2_end = end_session_requests[-1]
307+
assert session_2_end.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
308+
request_json = session_2_end.json()
298309
assert request_json["session"]["end_state"] == end_state
299310
assert len(request_json["session"]["tags"]) == 0
300311

0 commit comments

Comments
 (0)