# from unittest.mock import MagicMock # import pytest # from crewai import Agent, Task # from crewai.tools.agent_tools.base_agent_tools import BaseAgentTool # class InternalAgentTool(BaseAgentTool): # """Concrete implementation of BaseAgentTool for testing.""" # def _run(self, *args, **kwargs): # """Implement required _run method.""" # return "Test response" # @pytest.mark.parametrize( # "role_name,should_match", # [ # ("Futel Official Infopoint", True), # exact match # (' "Futel Official Infopoint" ', True), # extra quotes and spaces # ("Futel Official Infopoint\n", True), # trailing newline # ('"Futel Official Infopoint"', True), # embedded quotes # (" FUTEL\nOFFICIAL INFOPOINT ", True), # multiple whitespace and newline # ("futel official infopoint", True), # lowercase # ("FUTEL OFFICIAL INFOPOINT", True), # uppercase # ("Non Existent Agent", False), # non-existent agent # (None, False), # None agent name # ], # ) # def test_agent_tool_role_matching(role_name, should_match): # """Test that agent tools can match roles regardless of case, whitespace, and special characters.""" # # Create test agent # test_agent = Agent( # role="Futel Official Infopoint", # goal="Answer questions about Futel", # backstory="Futel Football Club info", # allow_delegation=False, # ) # # Create test agent tool # agent_tool = InternalAgentTool( # name="test_tool", description="Test tool", agents=[test_agent] # ) # # Test role matching # result = agent_tool._execute(agent_name=role_name, task="Test task", context=None) # if should_match: # assert ( # "coworker mentioned not found" not in result.lower() # ), f"Should find agent with role name: {role_name}" # else: # assert ( # "coworker mentioned not found" in result.lower() # ), f"Should not find agent with role name: {role_name}"