Skip to content

Commit 18a1ce9

Browse files
authored
tests: replace assert len(mock_req.request_history) == N checks with specific request filtering (#670)
* test(record_tool): replace `assert len(mock_req.request_history) == N` checks with specific request filtering 1. Replaced `assert len(mock_req.request_history) == N` checks with specific request filtering 2. Added helper to find relevant requests using URL patterns 3. Made assertions more focused on the actual tool recording functionality 4. Maintained all existing functionality checks while removing dependency on request count * test(record_action): replace `assert len(mock_req.request_history) == N` checks with specific request filtering Replaced request count assertions with specific request filtering Added helper to find relevant requests using URL patterns Made assertions more focused on the actual action recording functionality Maintained all existing functionality checks while removing dependency on request count Signed-off-by: Teo <[email protected]> * test(session): replace `assert len(mock_req.request_history) == N` checks with specific request filtering Signed-off-by: Teo <[email protected]> * test(pre_init): replace `assert len(mock_req.request_history) == N` checks with specific request filtering Signed-off-by: Teo <[email protected]> * test(canary): replace `assert len(mock_req.request_history) == N` checks with specific request filtering Signed-off-by: Teo <[email protected]> --------- Signed-off-by: Teo <[email protected]>
1 parent 40c24bf commit 18a1ce9

File tree

5 files changed

+185
-146
lines changed

5 files changed

+185
-146
lines changed

tests/unit/test_canary.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@ def test_agent_ops_record(self, mock_req):
2222
agentops.record(ActionEvent(event_type))
2323
time.sleep(2)
2424

25-
# 3 requests: check_for_updates, create_session, create_events
26-
assert len(mock_req.request_history) == 3
25+
# Find event requests
26+
event_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
27+
assert len(event_requests) > 0
28+
last_event_request = event_requests[-1]
2729

28-
request_json = mock_req.last_request.json()
29-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
30+
assert last_event_request.headers["X-Agentops-Api-Key"] == self.api_key
31+
request_json = last_event_request.json()
3032
assert request_json["events"][0]["event_type"] == event_type
3133

3234
agentops.end_session("Success")

tests/unit/test_pre_init.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,23 @@ def test_track_agent(self, mock_req):
2929
agentops.init(api_key=self.api_key)
3030
time.sleep(1)
3131

32-
# Assert
33-
# start session and create agent
34-
agentops.end_session(end_state="Success")
32+
# Find agent creation request
33+
agent_requests = [r for r in mock_req.request_history if "/v2/create_agent" in r.url]
34+
assert len(agent_requests) > 0
35+
last_agent_request = agent_requests[-1]
36+
37+
# Assert agent creation
38+
assert last_agent_request.headers["X-Agentops-Api-Key"] == self.api_key
3539

36-
# Wait for flush
40+
# End session and wait for flush
41+
agentops.end_session(end_state="Success")
3742
time.sleep(1.5)
3843

39-
# 4 requests: check_for_updates, create_session, create_agent, update_session
40-
assert len(mock_req.request_history) == 4
44+
# Find session end request
45+
end_session_requests = [r for r in mock_req.request_history if "/v2/update_session" in r.url]
46+
assert len(end_session_requests) > 0
47+
last_end_request = end_session_requests[-1]
4148

42-
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
49+
assert last_end_request.headers["X-Agentops-Api-Key"] == self.api_key
4350

4451
mock_req.reset()

tests/unit/test_record_action.py

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@ def add_two(x, y):
2525
add_two(3, 4)
2626
time.sleep(0.1)
2727

28-
# 3 requests: check_for_updates, start_session, record_action
29-
assert len(mock_req.request_history) == 3
30-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
31-
request_json = mock_req.last_request.json()
28+
# Find the record_action request
29+
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
30+
assert len(action_requests) > 0
31+
last_action_request = action_requests[-1]
32+
33+
assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
34+
request_json = last_action_request.json()
3235
assert request_json["events"][0]["action_type"] == self.event_type
3336
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
3437
assert request_json["events"][0]["returns"] == 7
@@ -46,10 +49,13 @@ def add_two(x, y):
4649
add_two(3, 4)
4750
time.sleep(0.1)
4851

49-
# 3 requests: check_for_updates, start_session, record_action
50-
assert len(mock_req.request_history) == 3
51-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
52-
request_json = mock_req.last_request.json()
52+
# Find the record_action request
53+
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
54+
assert len(action_requests) > 0
55+
last_action_request = action_requests[-1]
56+
57+
assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
58+
request_json = last_action_request.json()
5359
assert request_json["events"][0]["action_type"] == "add_two"
5460
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
5561
assert request_json["events"][0]["returns"] == 7
@@ -70,10 +76,13 @@ def add_three(x, y, z=3):
7076

7177
time.sleep(1.5)
7278

73-
# 3 requests: check_for_updates, start_session, record_action
74-
assert len(mock_req.request_history) == 3
75-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
76-
request_json = mock_req.last_request.json()
79+
# Find the record_action request
80+
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
81+
assert len(action_requests) > 0
82+
last_action_request = action_requests[-1]
83+
84+
assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
85+
request_json = last_action_request.json()
7786

7887
assert request_json["events"][1]["action_type"] == self.event_type
7988
assert request_json["events"][1]["params"] == {"x": 1, "y": 2, "z": 4}
@@ -100,10 +109,14 @@ async def async_add(x, y):
100109

101110
# Assert
102111
assert result == 7
103-
# Assert
104-
assert len(mock_req.request_history) == 3
105-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
106-
request_json = mock_req.last_request.json()
112+
113+
# Find the record_action request
114+
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
115+
assert len(action_requests) > 0
116+
last_action_request = action_requests[-1]
117+
118+
assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
119+
request_json = last_action_request.json()
107120
assert request_json["events"][0]["action_type"] == self.event_type
108121
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
109122
assert request_json["events"][0]["returns"] == 7
@@ -132,31 +145,29 @@ def add_three(x, y, z=3):
132145
add_three(1, 2, 3, session=session_2)
133146
time.sleep(0.1)
134147

135-
assert len(mock_req.request_history) == 5
148+
# Find action requests
149+
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
150+
assert len(action_requests) >= 2 # Should have at least 2 action requests
136151

137-
request_json = mock_req.last_request.json()
138-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
139-
assert (
140-
mock_req.last_request.headers["Authorization"]
141-
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
142-
)
152+
# Verify session_2's request (last request)
153+
last_request = action_requests[-1]
154+
assert last_request.headers["X-Agentops-Api-Key"] == self.api_key
155+
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
156+
request_json = last_request.json()
143157
assert request_json["events"][0]["action_type"] == self.event_type
144158
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
145159
assert request_json["events"][0]["returns"] == 6
146160

147-
second_last_request_json = mock_req.request_history[-2].json()
148-
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
161+
# Verify session_1's request (second to last request)
162+
second_last_request = action_requests[-2]
163+
assert second_last_request.headers["X-Agentops-Api-Key"] == self.api_key
149164
assert (
150-
mock_req.request_history[-2].headers["Authorization"]
151-
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
165+
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
152166
)
153-
assert second_last_request_json["events"][0]["action_type"] == self.event_type
154-
assert second_last_request_json["events"][0]["params"] == {
155-
"x": 1,
156-
"y": 2,
157-
"z": 3,
158-
}
159-
assert second_last_request_json["events"][0]["returns"] == 6
167+
request_json = second_last_request.json()
168+
assert request_json["events"][0]["action_type"] == self.event_type
169+
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
170+
assert request_json["events"][0]["returns"] == 6
160171

161172
session_1.end_session(end_state="Success")
162173
session_2.end_session(end_state="Success")

tests/unit/test_record_tool.py

Lines changed: 61 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ def add_two(x, y):
2929
add_two(3, 4)
3030
time.sleep(0.1)
3131

32-
# 3 requests: check_for_updates, start_session, record_tool
33-
assert len(mock_req.request_history) == 3
34-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
35-
request_json = mock_req.last_request.json()
32+
# Find the record_tool request
33+
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
34+
assert len(tool_requests) > 0
35+
last_tool_request = tool_requests[-1]
36+
37+
assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
38+
request_json = last_tool_request.json()
3639
assert request_json["events"][0]["name"] == self.tool_name
3740
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
3841
assert request_json["events"][0]["returns"] == 7
@@ -50,10 +53,13 @@ def add_two(x, y):
5053
add_two(3, 4)
5154
time.sleep(0.1)
5255

53-
# Assert
54-
assert len(mock_req.request_history) == 3
55-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
56-
request_json = mock_req.last_request.json()
56+
# Find the record_tool request
57+
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
58+
assert len(tool_requests) > 0
59+
last_tool_request = tool_requests[-1]
60+
61+
assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
62+
request_json = last_tool_request.json()
5763
assert request_json["events"][0]["name"] == "add_two"
5864
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
5965
assert request_json["events"][0]["returns"] == 7
@@ -74,10 +80,13 @@ def add_three(x, y, z=3):
7480
add_three(1, 2)
7581
time.sleep(0.1)
7682

77-
# 4 requests: check_for_updates, start_session, record_tool, record_tool
78-
assert len(mock_req.request_history) == 4
79-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
80-
request_json = mock_req.last_request.json()
83+
# Find all tool requests
84+
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
85+
assert len(tool_requests) > 0
86+
last_tool_request = tool_requests[-1]
87+
88+
assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
89+
request_json = last_tool_request.json()
8190
assert request_json["events"][0]["name"] == self.tool_name
8291
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
8392
assert request_json["events"][0]["returns"] == 6
@@ -99,10 +108,14 @@ async def async_add(x, y):
99108

100109
# Assert
101110
assert result == 7
102-
# Assert
103-
assert len(mock_req.request_history) == 3
104-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
105-
request_json = mock_req.last_request.json()
111+
112+
# Find the record_tool request
113+
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
114+
assert len(tool_requests) > 0
115+
last_tool_request = tool_requests[-1]
116+
117+
assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
118+
request_json = last_tool_request.json()
106119
assert request_json["events"][0]["name"] == self.tool_name
107120
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
108121
assert request_json["events"][0]["returns"] == 7
@@ -131,32 +144,29 @@ def add_three(x, y, z=3):
131144
add_three(1, 2, session=session_2)
132145
time.sleep(0.1)
133146

134-
# 6 requests: check_for_updates, start_session, record_tool, start_session, record_tool, end_session
135-
assert len(mock_req.request_history) == 5
147+
# Find tool requests
148+
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
149+
assert len(tool_requests) >= 2 # Should have at least 2 tool requests
136150

137-
request_json = mock_req.last_request.json()
138-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
139-
assert (
140-
mock_req.last_request.headers["Authorization"]
141-
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
142-
)
151+
# Verify session_2's request (last request)
152+
last_request = tool_requests[-1]
153+
assert last_request.headers["X-Agentops-Api-Key"] == self.api_key
154+
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
155+
request_json = last_request.json()
143156
assert request_json["events"][0]["name"] == self.tool_name
144157
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
145158
assert request_json["events"][0]["returns"] == 6
146159

147-
second_last_request_json = mock_req.request_history[-2].json()
148-
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
160+
# Verify session_1's request (second to last request)
161+
second_last_request = tool_requests[-2]
162+
assert second_last_request.headers["X-Agentops-Api-Key"] == self.api_key
149163
assert (
150-
mock_req.request_history[-2].headers["Authorization"]
151-
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
164+
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
152165
)
153-
assert second_last_request_json["events"][0]["name"] == self.tool_name
154-
assert second_last_request_json["events"][0]["params"] == {
155-
"x": 1,
156-
"y": 2,
157-
"z": 3,
158-
}
159-
assert second_last_request_json["events"][0]["returns"] == 6
166+
request_json = second_last_request.json()
167+
assert request_json["events"][0]["name"] == self.tool_name
168+
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
169+
assert request_json["events"][0]["returns"] == 6
160170

161171
session_1.end_session(end_state="Success")
162172
session_2.end_session(end_state="Success")
@@ -180,31 +190,29 @@ async def async_add(x, y):
180190
await async_add(1, 2, session=session_2)
181191
time.sleep(0.1)
182192

183-
# Assert
184-
assert len(mock_req.request_history) == 5
193+
# Find tool requests
194+
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
195+
assert len(tool_requests) >= 2 # Should have at least 2 tool requests
185196

186-
request_json = mock_req.last_request.json()
187-
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
188-
assert (
189-
mock_req.last_request.headers["Authorization"]
190-
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
191-
)
197+
# Verify session_2's request (last request)
198+
last_request = tool_requests[-1]
199+
assert last_request.headers["X-Agentops-Api-Key"] == self.api_key
200+
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
201+
request_json = last_request.json()
192202
assert request_json["events"][0]["name"] == self.tool_name
193203
assert request_json["events"][0]["params"] == {"x": 1, "y": 2}
194204
assert request_json["events"][0]["returns"] == 3
195205

196-
second_last_request_json = mock_req.request_history[-2].json()
197-
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
206+
# Verify session_1's request (second to last request)
207+
second_last_request = tool_requests[-2]
208+
assert second_last_request.headers["X-Agentops-Api-Key"] == self.api_key
198209
assert (
199-
mock_req.request_history[-2].headers["Authorization"]
200-
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
210+
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
201211
)
202-
assert second_last_request_json["events"][0]["name"] == self.tool_name
203-
assert second_last_request_json["events"][0]["params"] == {
204-
"x": 1,
205-
"y": 2,
206-
}
207-
assert second_last_request_json["events"][0]["returns"] == 3
212+
request_json = second_last_request.json()
213+
assert request_json["events"][0]["name"] == self.tool_name
214+
assert request_json["events"][0]["params"] == {"x": 1, "y": 2}
215+
assert request_json["events"][0]["returns"] == 3
208216

209217
session_1.end_session(end_state="Success")
210218
session_2.end_session(end_state="Success")

0 commit comments

Comments
 (0)