@@ -483,6 +483,40 @@ def test_terminate(process_manager):
483
483
assert len (process_manager .created_workers ) == 0
484
484
485
485
486
+ def test_terminate_wrong_mode (process_manager ):
487
+ process_manager .push_to_output_queues = MagicMock ()
488
+
489
+ process_manager .spawn_worker ()
490
+ process_manager .spawn_worker ()
491
+
492
+ assert len (process_manager .created_workers ) == 2
493
+
494
+ with pytest .raises (ValueError ):
495
+ process_manager .terminate (mode = "foobar" )
496
+
497
+ assert len (process_manager .created_workers ) == 2
498
+
499
+
500
+ def test_terminate_hard (process_manager ):
501
+ process_manager .push_to_output_queues = MagicMock ()
502
+
503
+ worker1 = process_manager .spawn_worker ()
504
+ worker2 = process_manager .spawn_worker ()
505
+
506
+ worker1 .terminate = MagicMock ()
507
+ worker2 .terminate = MagicMock ()
508
+
509
+ assert len (process_manager .created_workers ) == 2
510
+
511
+ process_manager .terminate (mode = "hard" )
512
+
513
+ # In the hard mode, we terminate all workers without waiting for them to finish.
514
+ worker1 .terminate .assert_called_once ()
515
+ worker2 .terminate .assert_called_once ()
516
+
517
+ assert len (process_manager .created_workers ) == 0
518
+
519
+
486
520
def test_terminate_spread_stop_signal (process_manager ):
487
521
process_manager .push_to_output_queues = MagicMock ()
488
522
process_manager .spread_stop_signal = True
0 commit comments