conductor(checkpoint): Phase 2: Context and Chat Simulation complete
This commit is contained in:
50
tests/test_sim_context.py
Normal file
50
tests/test_sim_context.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import pytest
|
||||
from unittest.mock import MagicMock, patch
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Ensure project root is in path
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||
|
||||
from simulation.sim_context import ContextSimulation
|
||||
|
||||
def test_context_simulation_run():
|
||||
mock_client = MagicMock()
|
||||
mock_client.wait_for_server.return_value = True
|
||||
|
||||
# Mock project config
|
||||
mock_project = {
|
||||
'project': {
|
||||
'files': {'paths': []}
|
||||
}
|
||||
}
|
||||
mock_client.get_project.return_value = mock_project
|
||||
mock_client.get_value.side_effect = lambda key: {
|
||||
"ai_status": "md written: test.md",
|
||||
"token_budget_pct": 0.05
|
||||
}.get(key)
|
||||
|
||||
# Mock session entries
|
||||
mock_session = {
|
||||
'session': {
|
||||
'entries': [
|
||||
{'role': 'User', 'content': 'Hello'},
|
||||
{'role': 'AI', 'content': 'Hi'}
|
||||
]
|
||||
}
|
||||
}
|
||||
mock_client.get_session.return_value = mock_session
|
||||
|
||||
with patch('simulation.sim_base.WorkflowSimulator') as mock_sim_class:
|
||||
mock_sim = MagicMock()
|
||||
mock_sim_class.return_value = mock_sim
|
||||
|
||||
sim = ContextSimulation(mock_client)
|
||||
sim.run()
|
||||
|
||||
# Verify calls
|
||||
mock_sim.create_discussion.assert_called()
|
||||
mock_client.post_project.assert_called()
|
||||
mock_client.click.assert_called_with("btn_md_only")
|
||||
mock_sim.run_discussion_turn.assert_called()
|
||||
mock_sim.truncate_history.assert_called_with(1)
|
||||
Reference in New Issue
Block a user