Skip to content

Commit

Permalink
tests: replace assert len(mock_req.request_history) == N checks wit…
Browse files Browse the repository at this point in the history
…h 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]>
  • Loading branch information
teocns authored Feb 6, 2025
1 parent 40c24bf commit 18a1ce9
Show file tree
Hide file tree
Showing 5 changed files with 185 additions and 146 deletions.
10 changes: 6 additions & 4 deletions tests/unit/test_canary.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@ def test_agent_ops_record(self, mock_req):
agentops.record(ActionEvent(event_type))
time.sleep(2)

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

request_json = mock_req.last_request.json()
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert last_event_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_event_request.json()
assert request_json["events"][0]["event_type"] == event_type

agentops.end_session("Success")
21 changes: 14 additions & 7 deletions tests/unit/test_pre_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,23 @@ def test_track_agent(self, mock_req):
agentops.init(api_key=self.api_key)
time.sleep(1)

# Assert
# start session and create agent
agentops.end_session(end_state="Success")
# Find agent creation request
agent_requests = [r for r in mock_req.request_history if "/v2/create_agent" in r.url]
assert len(agent_requests) > 0
last_agent_request = agent_requests[-1]

# Assert agent creation
assert last_agent_request.headers["X-Agentops-Api-Key"] == self.api_key

# Wait for flush
# End session and wait for flush
agentops.end_session(end_state="Success")
time.sleep(1.5)

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

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

mock_req.reset()
79 changes: 45 additions & 34 deletions tests/unit/test_record_action.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ def add_two(x, y):
add_two(3, 4)
time.sleep(0.1)

# 3 requests: check_for_updates, start_session, record_action
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()
# Find the record_action request
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(action_requests) > 0
last_action_request = action_requests[-1]

assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_action_request.json()
assert request_json["events"][0]["action_type"] == self.event_type
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
assert request_json["events"][0]["returns"] == 7
Expand All @@ -46,10 +49,13 @@ def add_two(x, y):
add_two(3, 4)
time.sleep(0.1)

# 3 requests: check_for_updates, start_session, record_action
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()
# Find the record_action request
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(action_requests) > 0
last_action_request = action_requests[-1]

assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_action_request.json()
assert request_json["events"][0]["action_type"] == "add_two"
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
assert request_json["events"][0]["returns"] == 7
Expand All @@ -70,10 +76,13 @@ def add_three(x, y, z=3):

time.sleep(1.5)

# 3 requests: check_for_updates, start_session, record_action
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()
# Find the record_action request
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(action_requests) > 0
last_action_request = action_requests[-1]

assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_action_request.json()

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

# Assert
assert result == 7
# Assert
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()

# Find the record_action request
action_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(action_requests) > 0
last_action_request = action_requests[-1]

assert last_action_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_action_request.json()
assert request_json["events"][0]["action_type"] == self.event_type
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
assert request_json["events"][0]["returns"] == 7
Expand Down Expand Up @@ -132,31 +145,29 @@ def add_three(x, y, z=3):
add_three(1, 2, 3, session=session_2)
time.sleep(0.1)

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

request_json = mock_req.last_request.json()
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert (
mock_req.last_request.headers["Authorization"]
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
)
# Verify session_2's request (last request)
last_request = action_requests[-1]
assert last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
request_json = last_request.json()
assert request_json["events"][0]["action_type"] == self.event_type
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
assert request_json["events"][0]["returns"] == 6

second_last_request_json = mock_req.request_history[-2].json()
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
# Verify session_1's request (second to last request)
second_last_request = action_requests[-2]
assert second_last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert (
mock_req.request_history[-2].headers["Authorization"]
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
)
assert second_last_request_json["events"][0]["action_type"] == self.event_type
assert second_last_request_json["events"][0]["params"] == {
"x": 1,
"y": 2,
"z": 3,
}
assert second_last_request_json["events"][0]["returns"] == 6
request_json = second_last_request.json()
assert request_json["events"][0]["action_type"] == self.event_type
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
assert request_json["events"][0]["returns"] == 6

session_1.end_session(end_state="Success")
session_2.end_session(end_state="Success")
Expand Down
114 changes: 61 additions & 53 deletions tests/unit/test_record_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@ def add_two(x, y):
add_two(3, 4)
time.sleep(0.1)

# 3 requests: check_for_updates, start_session, record_tool
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()
# Find the record_tool request
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(tool_requests) > 0
last_tool_request = tool_requests[-1]

assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_tool_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
assert request_json["events"][0]["returns"] == 7
Expand All @@ -50,10 +53,13 @@ def add_two(x, y):
add_two(3, 4)
time.sleep(0.1)

# Assert
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()
# Find the record_tool request
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(tool_requests) > 0
last_tool_request = tool_requests[-1]

assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_tool_request.json()
assert request_json["events"][0]["name"] == "add_two"
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
assert request_json["events"][0]["returns"] == 7
Expand All @@ -74,10 +80,13 @@ def add_three(x, y, z=3):
add_three(1, 2)
time.sleep(0.1)

# 4 requests: check_for_updates, start_session, record_tool, record_tool
assert len(mock_req.request_history) == 4
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()
# Find all tool requests
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(tool_requests) > 0
last_tool_request = tool_requests[-1]

assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_tool_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
assert request_json["events"][0]["returns"] == 6
Expand All @@ -99,10 +108,14 @@ async def async_add(x, y):

# Assert
assert result == 7
# Assert
assert len(mock_req.request_history) == 3
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = mock_req.last_request.json()

# Find the record_tool request
tool_requests = [r for r in mock_req.request_history if "/v2/create_events" in r.url]
assert len(tool_requests) > 0
last_tool_request = tool_requests[-1]

assert last_tool_request.headers["X-Agentops-Api-Key"] == self.api_key
request_json = last_tool_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 3, "y": 4}
assert request_json["events"][0]["returns"] == 7
Expand Down Expand Up @@ -131,32 +144,29 @@ def add_three(x, y, z=3):
add_three(1, 2, session=session_2)
time.sleep(0.1)

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

request_json = mock_req.last_request.json()
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert (
mock_req.last_request.headers["Authorization"]
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
)
# Verify session_2's request (last request)
last_request = tool_requests[-1]
assert last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
request_json = last_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
assert request_json["events"][0]["returns"] == 6

second_last_request_json = mock_req.request_history[-2].json()
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
# Verify session_1's request (second to last request)
second_last_request = tool_requests[-2]
assert second_last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert (
mock_req.request_history[-2].headers["Authorization"]
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
)
assert second_last_request_json["events"][0]["name"] == self.tool_name
assert second_last_request_json["events"][0]["params"] == {
"x": 1,
"y": 2,
"z": 3,
}
assert second_last_request_json["events"][0]["returns"] == 6
request_json = second_last_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 1, "y": 2, "z": 3}
assert request_json["events"][0]["returns"] == 6

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

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

request_json = mock_req.last_request.json()
assert mock_req.last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert (
mock_req.last_request.headers["Authorization"]
== f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
)
# Verify session_2's request (last request)
last_request = tool_requests[-1]
assert last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_2.session_id)]}"
request_json = last_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 1, "y": 2}
assert request_json["events"][0]["returns"] == 3

second_last_request_json = mock_req.request_history[-2].json()
assert mock_req.request_history[-2].headers["X-Agentops-Api-Key"] == self.api_key
# Verify session_1's request (second to last request)
second_last_request = tool_requests[-2]
assert second_last_request.headers["X-Agentops-Api-Key"] == self.api_key
assert (
mock_req.request_history[-2].headers["Authorization"]
== f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
second_last_request.headers["Authorization"] == f"Bearer {mock_req.session_jwts[str(session_1.session_id)]}"
)
assert second_last_request_json["events"][0]["name"] == self.tool_name
assert second_last_request_json["events"][0]["params"] == {
"x": 1,
"y": 2,
}
assert second_last_request_json["events"][0]["returns"] == 3
request_json = second_last_request.json()
assert request_json["events"][0]["name"] == self.tool_name
assert request_json["events"][0]["params"] == {"x": 1, "y": 2}
assert request_json["events"][0]["returns"] == 3

session_1.end_session(end_state="Success")
session_2.end_session(end_state="Success")
Expand Down
Loading

0 comments on commit 18a1ce9

Please sign in to comment.