Fix test_trading_graph.py test failures

- Fix set_config patch path to use correct import location
- Add complete mock state for test_propagate_debug_mode to avoid KeyError

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
佐藤優一 2025-08-11 13:15:33 +09:00
parent 6163737635
commit b314db546f
1 changed files with 42 additions and 16 deletions

View File

@ -11,7 +11,7 @@ from .mock_toolkit_fix import patch_toolkit_in_test
class TestTradingAgentsGraph:
"""Test suite for TradingAgentsGraph class."""
@patch("tradingagents.dataflows.config.set_config")
@patch("tradingagents.graph.trading_graph.set_config")
@patch("tradingagents.graph.trading_graph.ChatOpenAI")
@patch("tradingagents.graph.trading_graph.Toolkit")
def test_init_basic(
@ -58,7 +58,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
graph = TradingAgentsGraph(debug=True, config=sample_config)
assert graph.debug is True
@ -80,7 +80,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
TradingAgentsGraph(config=sample_config)
assert mock_chat_anthropic.call_count == 2
@ -102,7 +102,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
TradingAgentsGraph(config=sample_config)
assert mock_chat_google.call_count == 2
@ -120,7 +120,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with pytest.raises(ValueError, match="Unsupported LLM provider"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
TradingAgentsGraph(config=sample_config)
@patch("tradingagents.graph.trading_graph.ChatOpenAI")
@ -146,7 +146,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
graph = TradingAgentsGraph(config=sample_config)
# Verify tool nodes are created
@ -200,7 +200,7 @@ class TestTradingAgentsGraph:
mock_graph.invoke.return_value = mock_final_state
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
graph = TradingAgentsGraph(config=sample_config)
graph.graph = mock_graph
@ -238,12 +238,38 @@ class TestTradingAgentsGraph:
# Mock the graph stream method for debug mode
mock_graph = Mock()
mock_chunk = {"messages": [Mock()]}
mock_chunk["messages"][0].pretty_print = Mock()
mock_graph.stream.return_value = [mock_chunk, mock_chunk] # Multiple chunks
# Create a complete mock chunk with all required fields
mock_final_chunk = {
"messages": [Mock()],
"company_of_interest": "TSLA",
"trade_date": "2024-05-15",
"market_report": "",
"sentiment_report": "",
"news_report": "",
"fundamentals_report": "",
"investment_debate_state": {
"bull_history": [],
"bear_history": [],
"history": [],
"current_response": "",
"judge_decision": "",
},
"trader_investment_plan": "",
"risk_debate_state": {
"risky_history": [],
"safe_history": [],
"neutral_history": [],
"history": [],
"judge_decision": "",
},
"investment_plan": "",
"final_trade_decision": "BUY",
}
mock_final_chunk["messages"][0].pretty_print = Mock()
mock_graph.stream.return_value = [mock_final_chunk, mock_final_chunk] # Multiple chunks
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
graph = TradingAgentsGraph(debug=True, config=sample_config)
graph.graph = mock_graph
@ -279,7 +305,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
graph = TradingAgentsGraph(config=sample_config)
graph.ticker = "NVDA"
@ -382,7 +408,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
graph = TradingAgentsGraph(config=sample_config)
graph.signal_processor.process_signal = Mock(return_value="BUY")
@ -418,7 +444,7 @@ class TestTradingAgentsGraph:
patch_toolkit_in_test(mock_toolkit)
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
TradingAgentsGraph(
selected_analysts=selected_analysts,
config=sample_config,
@ -439,7 +465,7 @@ class TestTradingAgentsGraphErrorHandling:
patch_toolkit_in_test(mock_toolkit)
# This should still work as the class should use defaults for missing keys
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
with pytest.raises(
KeyError,
): # Should fail when trying to access missing config keys
@ -461,7 +487,7 @@ class TestTradingAgentsGraphErrorHandling:
# Should handle directory creation gracefully or raise appropriate error
with patch("tradingagents.graph.trading_graph.FinancialSituationMemory"):
with patch("tradingagents.dataflows.config.set_config"):
with patch("tradingagents.graph.trading_graph.set_config"):
# This might raise PermissionError or similar, depending on implementation
try:
TradingAgentsGraph(config=sample_config)