mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 23:58:34 +00:00
96 lines
3.8 KiB
Python
96 lines
3.8 KiB
Python
from unittest.mock import Mock, patch
|
|
from crewai.utilities.events.utils.console_formatter import ConsoleFormatter
|
|
|
|
|
|
class TestConsoleFormatterVerbose:
|
|
"""Test verbose output functionality in console formatter."""
|
|
|
|
def setup_method(self):
|
|
"""Set up test fixtures."""
|
|
self.formatter = ConsoleFormatter(verbose=True)
|
|
|
|
def test_get_task_display_name_with_name(self):
|
|
"""Test task display name when task has a name."""
|
|
task = Mock()
|
|
task.name = "Research Market Trends"
|
|
task.id = "12345678-1234-5678-9012-123456789abc"
|
|
|
|
result = self.formatter._get_task_display_name(task)
|
|
assert "Research Market Trends" in result
|
|
assert "12345678" in result
|
|
|
|
def test_get_task_display_name_with_description_only(self):
|
|
"""Test task display name when task has no name but has description."""
|
|
task = Mock()
|
|
task.name = None
|
|
task.description = "Analyze current market trends and provide insights"
|
|
task.id = "12345678-1234-5678-9012-123456789abc"
|
|
|
|
result = self.formatter._get_task_display_name(task)
|
|
assert "Analyze current market trends" in result
|
|
assert "12345678" in result
|
|
|
|
def test_get_task_display_name_long_description_truncated(self):
|
|
"""Test task display name truncates long descriptions."""
|
|
task = Mock()
|
|
task.name = None
|
|
task.description = "This is a very long task description that should be truncated because it exceeds the maximum length"
|
|
task.id = "12345678-1234-5678-9012-123456789abc"
|
|
|
|
result = self.formatter._get_task_display_name(task)
|
|
assert len(result.split("(ID:")[0].strip()) <= 53
|
|
assert "..." in result
|
|
|
|
def test_get_task_display_name_fallback_to_id(self):
|
|
"""Test task display name falls back to ID when no name or description."""
|
|
task = Mock()
|
|
task.name = None
|
|
task.description = None
|
|
task.id = "12345678-1234-5678-9012-123456789abc"
|
|
|
|
result = self.formatter._get_task_display_name(task)
|
|
assert result == "12345678-1234-5678-9012-123456789abc"
|
|
|
|
@patch('crewai.utilities.events.utils.console_formatter.ConsoleFormatter.print')
|
|
def test_create_task_branch_uses_task_name(self, mock_print):
|
|
"""Test create_task_branch displays task name instead of ID."""
|
|
task = Mock()
|
|
task.name = "Write Blog Post"
|
|
task.id = "12345678-1234-5678-9012-123456789abc"
|
|
|
|
crew_tree = Mock()
|
|
crew_tree.add.return_value = Mock()
|
|
|
|
self.formatter.create_task_branch(crew_tree, task)
|
|
|
|
call_args = crew_tree.add.call_args[0][0]
|
|
assert "Write Blog Post" in str(call_args)
|
|
assert "12345678" in str(call_args)
|
|
|
|
@patch('crewai.utilities.events.utils.console_formatter.ConsoleFormatter.print')
|
|
def test_update_task_status_uses_task_name(self, mock_print):
|
|
"""Test update_task_status displays task name instead of ID."""
|
|
task = Mock()
|
|
task.name = "Data Analysis"
|
|
task.id = "12345678-1234-5678-9012-123456789abc"
|
|
|
|
crew_tree = Mock()
|
|
branch = Mock()
|
|
branch.label = "12345678-1234-5678-9012-123456789abc"
|
|
crew_tree.children = [branch]
|
|
|
|
self.formatter.update_task_status(crew_tree, task, "Data Analyst", "completed")
|
|
|
|
updated_label = branch.label
|
|
assert "Data Analysis" in str(updated_label)
|
|
|
|
def test_verbose_disabled_returns_none(self):
|
|
"""Test that methods return None when verbose is disabled."""
|
|
formatter = ConsoleFormatter(verbose=False)
|
|
task = Mock()
|
|
|
|
result = formatter.create_task_branch(Mock(), task)
|
|
assert result is None
|
|
|
|
formatter.update_task_status(Mock(), task, "Agent", "completed")
|