from crewai.agent import Agent from crewai.project import agent, task from crewai.task import Task class SimpleCrew: @agent def simple_agent(self): return Agent( role="Simple Agent", goal="Simple Goal", backstory="Simple Backstory" ) @task def simple_task(self): return Task(description="Simple Description", expected_output="Simple Output") @task def custom_named_task(self): return Task( description="Simple Description", expected_output="Simple Output", name="Custom", ) def test_agent_memoization(): crew = SimpleCrew() first_call_result = crew.simple_agent() second_call_result = crew.simple_agent() assert ( first_call_result is second_call_result ), "Agent memoization is not working as expected" def test_task_memoization(): crew = SimpleCrew() first_call_result = crew.simple_task() second_call_result = crew.simple_task() assert ( first_call_result is second_call_result ), "Task memoization is not working as expected" def test_task_name(): simple_task = SimpleCrew().simple_task() assert ( simple_task.name == "simple_task" ), "Task name is not inferred from function name as expected" custom_named_task = SimpleCrew().custom_named_task() assert ( custom_named_task.name == "Custom" ), "Custom task name is not being set as expected"