@@ -291,58 +291,83 @@ def test_reset_task_non_existing(self):
291291 def test_replace_task_with_dependents (self ):
292292 plan = Plan (goal = "" )
293293 tasks = [
294- Task (task_id = "1" , instruction = "First Task" , finished = True ),
295- Task (task_id = "2" , instruction = "Second Task" , dependent_task_ids = ["1" ], finished = True ),
294+ Task (task_id = "1" , instruction = "First Task" , assignee = "Engineer" , finished = True ),
295+ Task (task_id = "2" , instruction = "Second Task" , dependent_task_ids = ["1" ], assignee = "Engineer" , finished = True ),
296296 ]
297297 plan .add_tasks (tasks )
298- new_task = Task (task_id = "1" , instruction = "Updated First Task" )
299- plan .replace_task (new_task )
298+ plan .replace_task (
299+ task_id = "1" ,
300+ new_dependent_task_ids = [],
301+ new_instruction = "Updated First Task" ,
302+ new_assignee = "Engineer"
303+ )
300304 assert plan .task_map ["1" ].instruction == "Updated First Task"
301305 assert not plan .task_map ["2" ].is_finished # Dependent task should be reset
302306 assert plan .task_map ["2" ].code == ""
303307 assert plan .task_map ["2" ].result == ""
304308
305309 def test_replace_task_non_existing (self ):
306310 plan = Plan (goal = "" )
307- task = Task (task_id = "1" , instruction = "First Task" )
311+ task = Task (task_id = "1" , instruction = "First Task" , assignee = "Engineer" )
308312 plan .add_tasks ([task ])
309- new_task = Task (task_id = "2" , instruction = "New Task" )
310313 with pytest .raises (AssertionError ):
311- plan .replace_task (new_task ) # Task with ID 2 does not exist in plan
314+ # Task with ID 2 does not exist in plan
315+ plan .replace_task (
316+ task_id = "2" ,
317+ new_dependent_task_ids = [],
318+ new_instruction = "New Task" ,
319+ new_assignee = "Engineer"
320+ )
312321 assert "1" in plan .task_map
313322 assert "2" not in plan .task_map
314323
315324 def test_append_task_with_valid_dependencies (self ):
316325 plan = Plan (goal = "Test" )
317- existing_task = [Task (task_id = "1" )]
326+ existing_task = [Task (task_id = "1" , instruction = "Task 1" , assignee = "Engineer" )]
318327 plan .add_tasks (existing_task )
319- new_task = Task (task_id = "2" , dependent_task_ids = ["1" ])
320- plan .append_task (new_task )
328+ plan .append_task (
329+ task_id = "2" ,
330+ dependent_task_ids = ["1" ],
331+ instruction = "Task 2" ,
332+ assignee = "Engineer"
333+ )
321334 assert plan .tasks [- 1 ].task_id == "2"
322- assert plan .task_map ["2" ] == new_task
335+ assert plan .task_map ["2" ]. task_id == "2"
323336
324337 def test_append_task_with_invalid_dependencies (self ):
325- new_task = Task (task_id = "2" , dependent_task_ids = ["3" ])
326338 plan = Plan (goal = "Test" )
327339 with pytest .raises (AssertionError ):
328- plan .append_task (new_task )
340+ plan .append_task (
341+ task_id = "2" ,
342+ dependent_task_ids = ["3" ], # Invalid dependency
343+ instruction = "Task 2" ,
344+ assignee = "Engineer"
345+ )
329346
330347 def test_append_task_without_dependencies (self ):
331348 plan = Plan (goal = "Test" )
332- existing_task = [Task (task_id = "1" )]
349+ existing_task = [Task (task_id = "1" , instruction = "Task 1" , assignee = "Engineer" )]
333350 plan .add_tasks (existing_task )
334351
335- new_task = Task (task_id = "2" )
336- plan .append_task (new_task )
352+ plan .append_task (
353+ task_id = "2" ,
354+ dependent_task_ids = [],
355+ instruction = "Task 2" ,
356+ assignee = "Engineer"
357+ )
337358
338359 assert len (plan .tasks ) == 2
339360 assert plan .current_task_id == "1"
340361
341362 def test_append_task_updates_current_task (self ):
342- finished_task = Task (task_id = "1" , is_finished = True )
343- new_task = Task (task_id = "2" )
363+ finished_task = Task (task_id = "1" , instruction = "Task 1" , assignee = "Engineer" , is_finished = True )
344364 plan = Plan (goal = "Test" , tasks = [finished_task ])
345- plan .append_task (new_task )
365+ plan .append_task (
366+ task_id = "2" ,
367+ dependent_task_ids = [],
368+ instruction = "Task 2" ,
369+ assignee = "Engineer"
370+ )
346371 assert plan .current_task_id == "2"
347372
348373 def test_update_current_task (self ):
@@ -353,6 +378,7 @@ def test_update_current_task(self):
353378 assert plan .current_task_id == "2"
354379
355380
381+ @pytest .mark .asyncio
356382@pytest .mark .parametrize (
357383 ("content" , "key_descriptions" ),
358384 [
@@ -428,7 +454,7 @@ def test_serialize(self, mock_write_json_file, mock_user_model):
428454
429455 mock_user_model .serialize (file_path )
430456
431- mock_write_json_file .assert_called_once_with (file_path , mock_user_model .model_dump ())
457+ mock_write_json_file .assert_called_once_with (file_path , mock_user_model .model_dump (), use_fallback = True )
432458
433459 def test_deserialize (self , mock_read_json_file ):
434460 file_path = "test.json"
@@ -452,7 +478,7 @@ def test_serialize_with_exclude(self, mock_write_json_file):
452478 "__module_class_name" : "tests.metagpt.test_schema.TestUserModelWithExclude" ,
453479 }
454480
455- mock_write_json_file .assert_called_once_with (file_path , expected_data )
481+ mock_write_json_file .assert_called_once_with (file_path , expected_data , use_fallback = True )
456482
457483 def test_get_serialization_path (self ):
458484 expected_path = str (SERDESER_PATH / "TestUserModel.json" )
0 commit comments