zzz / tests /unit /test_browsing_agent_parser.py
ar08's picture
Upload 1040 files
246d201 verified
import pytest
from openhands.agenthub.browsing_agent.response_parser import (
BrowseInteractiveAction,
BrowsingResponseParser,
)
@pytest.mark.parametrize(
'action_str, expected',
[
("click('81'", "click('81')```"),
(
'"We need to search the internet\n```goto("google.com")',
'"We need to search the internet\n```goto("google.com")```',
),
("```click('81'", "```click('81')```"),
("click('81')", "click('81')```"),
(
"send_msg_to_user('The server might not be running or accessible. Please check the server status and try again.')",
"send_msg_to_user('The server might not be running or accessible. Please check the server status and try again.')```",
),
],
)
def test_parse_response(action_str: str, expected: str) -> None:
# BrowsingResponseParser.parse_response
parser = BrowsingResponseParser()
response = {'choices': [{'message': {'content': action_str}}]}
result = parser.parse_response(response)
assert result == expected
@pytest.mark.parametrize(
'action_str, expected_browser_actions, expected_thought, expected_msg_content',
[
("click('81')```", "click('81')", '', ''),
("```click('81')```", "click('81')", '', ''),
(
"We need to perform a click\n```click('81')",
"click('81')",
'We need to perform a click',
'',
),
(
'Tell the user that the city was built in 1751.\n```send_msg_to_user("Based on the results of my search, the city was built in 1751.")',
'send_msg_to_user("Based on the results of my search, the city was built in 1751.")',
'Tell the user that the city was built in 1751.',
'Based on the results of my search, the city was built in 1751.',
),
(
'Tell the user that the city was built in 1751.\n```send_msg_to_user("Based on the results of my search, the city was built in 1751.")```',
'send_msg_to_user("Based on the results of my search, the city was built in 1751.")',
'Tell the user that the city was built in 1751.',
'Based on the results of my search, the city was built in 1751.',
),
(
"Tell the user that the city was built in 1751.\n```send_msg_to_user('Based on the results of my search, the city was built in 1751.')```",
"send_msg_to_user('Based on the results of my search, the city was built in 1751.')",
'Tell the user that the city was built in 1751.',
'Based on the results of my search, the city was built in 1751.',
),
(
"send_msg_to_user('The server might not be running or accessible. Please check the server status and try again.'))```",
"send_msg_to_user('The server might not be running or accessible. Please check the server status and try again.'))",
'',
'The server might not be running or accessible. Please check the server status and try again.',
),
],
)
def test_parse_action(
action_str: str,
expected_browser_actions: str,
expected_thought: str,
expected_msg_content: str,
) -> None:
# BrowsingResponseParser.parse_action
parser = BrowsingResponseParser()
action = parser.parse_action(action_str)
assert isinstance(action, BrowseInteractiveAction)
assert action.browser_actions == expected_browser_actions
assert action.thought == expected_thought
assert action.browsergym_send_msg_to_user == expected_msg_content