TradingAgents/tests/cli/test_main.py

53 lines
2.0 KiB
Python

import pytest
from cli.main import MessageBuffer, extract_content_string
def test_extract_content_string_empty():
assert extract_content_string(None) is None
assert extract_content_string("") is None
assert extract_content_string(" ") is None
def test_extract_content_string_valid_eval():
assert extract_content_string("[]") is None
assert extract_content_string("{}") is None
assert extract_content_string('""') is None
def test_extract_content_string_invalid_eval_valueerror():
# simulating ValueError in literal_eval
assert extract_content_string("not_a_valid_python_literal") == "not_a_valid_python_literal"
def test_extract_content_string_invalid_eval_syntaxerror():
# simulating SyntaxError in literal_eval
assert extract_content_string("{[}") == "{[}"
def test_extract_content_string_dict():
assert extract_content_string({"text": "hello"}) == "hello"
assert extract_content_string({"text": " "}) is None
def test_extract_content_string_list():
assert extract_content_string([{"type": "text", "text": "hello"}, " world"]) == "hello world"
def test_message_buffer_completed_reports_count_tracks_active_sections_only():
buffer = MessageBuffer()
buffer.init_for_analysis(["market", "news"])
buffer.report_sections["market_report"] = "done"
buffer.report_sections["news_report"] = "done"
buffer.report_sections["investment_plan"] = "done"
buffer.agent_status["Market Analyst"] = "completed"
buffer.agent_status["News Analyst"] = "pending"
buffer.agent_status["Research Manager"] = "completed"
assert buffer.get_completed_reports_count() == 2
def test_message_buffer_completed_reports_count_ignores_unknown_section():
buffer = MessageBuffer()
buffer.init_for_analysis(["market"])
buffer.report_sections["market_report"] = "done"
buffer.report_sections["unexpected_report"] = "done"
buffer.agent_status["Market Analyst"] = "completed"
assert buffer.get_completed_reports_count() == 1