Skip to content

Commit 1561b4d

Browse files
committed
Update test imports and improve mocking in tests
Changed imports in test_cascade_validation.py to use EvaluationResult from openevolve.evaluation_result. In test_checkpoint_resume.py, replaced LLM mocking with ImprovedParallelController mocking to avoid actual API calls, ensuring more robust and isolated test behavior.
1 parent 597f0c6 commit 1561b4d

File tree

2 files changed

+46
-22
lines changed

2 files changed

+46
-22
lines changed

tests/test_cascade_validation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from unittest.mock import patch, MagicMock
99
from openevolve.config import Config
1010
from openevolve.evaluator import Evaluator
11-
from openevolve.database import EvaluationResult
11+
from openevolve.evaluation_result import EvaluationResult
1212

1313

1414
class TestCascadeValidation(unittest.TestCase):
@@ -134,7 +134,7 @@ def test_direct_evaluate_supports_evaluation_result(self):
134134
"""Test that _direct_evaluate supports EvaluationResult returns"""
135135
# Create evaluator that returns EvaluationResult
136136
evaluator_content = '''
137-
from openevolve.database import EvaluationResult
137+
from openevolve.evaluation_result import EvaluationResult
138138
139139
def evaluate(program_path):
140140
return EvaluationResult(

tests/test_checkpoint_resume.py

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import os
77
import tempfile
88
import unittest
9-
from unittest.mock import AsyncMock, MagicMock, patch
9+
from unittest.mock import AsyncMock, MagicMock, Mock, patch
1010
import json
1111
import time
1212

@@ -96,10 +96,16 @@ async def run_test():
9696
self.assertEqual(len(controller.database.programs), 0)
9797
self.assertEqual(controller.database.last_iteration, 0)
9898

99-
# Mock the LLM to avoid actual API calls
100-
with patch.object(controller.llm_ensemble, "generate_with_context") as mock_llm:
101-
mock_llm.return_value = "No changes needed"
102-
99+
# Mock the parallel controller to avoid API calls
100+
with patch("openevolve.controller.ImprovedParallelController") as mock_controller_class:
101+
mock_controller = Mock()
102+
mock_controller.run_evolution = AsyncMock(return_value=None)
103+
mock_controller.start = Mock(return_value=None)
104+
mock_controller.stop = Mock(return_value=None)
105+
mock_controller.shutdown_flag = Mock()
106+
mock_controller.shutdown_flag.is_set.return_value = False
107+
mock_controller_class.return_value = mock_controller
108+
103109
# Run for 0 iterations (just initialization)
104110
result = await controller.run(iterations=0)
105111

@@ -144,10 +150,16 @@ async def run_test():
144150

145151
controller.database.add(existing_program)
146152

147-
# Mock the LLM to avoid actual API calls
148-
with patch.object(controller.llm_ensemble, "generate_with_context") as mock_llm:
149-
mock_llm.return_value = "No changes needed"
150-
153+
# Mock the parallel controller to avoid API calls
154+
with patch("openevolve.controller.ImprovedParallelController") as mock_controller_class:
155+
mock_controller = Mock()
156+
mock_controller.run_evolution = AsyncMock(return_value=None)
157+
mock_controller.start = Mock(return_value=None)
158+
mock_controller.stop = Mock(return_value=None)
159+
mock_controller.shutdown_flag = Mock()
160+
mock_controller.shutdown_flag.is_set.return_value = False
161+
mock_controller_class.return_value = mock_controller
162+
151163
# Run for 0 iterations (just initialization)
152164
result = await controller.run(iterations=0)
153165

@@ -191,10 +203,16 @@ async def run_test():
191203
self.assertEqual(len(controller.database.programs), 1)
192204
self.assertEqual(controller.database.last_iteration, 10)
193205

194-
# Mock the LLM to avoid actual API calls
195-
with patch.object(controller.llm_ensemble, "generate_with_context") as mock_llm:
196-
mock_llm.return_value = "No changes needed"
197-
206+
# Mock the parallel controller to avoid API calls
207+
with patch("openevolve.controller.ImprovedParallelController") as mock_controller_class:
208+
mock_controller = Mock()
209+
mock_controller.run_evolution = AsyncMock(return_value=None)
210+
mock_controller.start = Mock(return_value=None)
211+
mock_controller.stop = Mock(return_value=None)
212+
mock_controller.shutdown_flag = Mock()
213+
mock_controller.shutdown_flag.is_set.return_value = False
214+
mock_controller_class.return_value = mock_controller
215+
198216
# Run for 0 iterations (just initialization)
199217
result = await controller.run(iterations=0)
200218

@@ -241,10 +259,16 @@ async def run_test():
241259
self.assertEqual(len(controller.database.programs), 1)
242260
self.assertEqual(controller.database.last_iteration, 0)
243261

244-
# Mock the LLM to avoid actual API calls
245-
with patch.object(controller.llm_ensemble, "generate_with_context") as mock_llm:
246-
mock_llm.return_value = "No changes needed"
247-
262+
# Mock the parallel controller to avoid API calls
263+
with patch("openevolve.controller.ImprovedParallelController") as mock_controller_class:
264+
mock_controller = Mock()
265+
mock_controller.run_evolution = AsyncMock(return_value=None)
266+
mock_controller.start = Mock(return_value=None)
267+
mock_controller.stop = Mock(return_value=None)
268+
mock_controller.shutdown_flag = Mock()
269+
mock_controller.shutdown_flag.is_set.return_value = False
270+
mock_controller_class.return_value = mock_controller
271+
248272
# Run for 0 iterations (just initialization)
249273
result = await controller.run(iterations=0)
250274

@@ -275,9 +299,9 @@ async def run_test():
275299
output_dir=self.test_dir,
276300
)
277301

278-
# Mock the LLM to avoid actual API calls
279-
with patch.object(controller.llm_ensemble, "generate_with_context") as mock_llm:
280-
mock_llm.return_value = "No changes needed"
302+
# Mock the parallel controller to avoid API calls
303+
with patch.object(controller, "parallel_controller") as mock_parallel:
304+
mock_parallel.run_evolution = AsyncMock(return_value=None)
281305

282306
# Run first time
283307
result1 = await controller.run(iterations=0)

0 commit comments

Comments
 (0)