def test_run_delays_execution_if_sync_requested(self) -> None: with patch("torch.distributed.elastic.rendezvous.dynamic_rendezvous._delay") as mock_delay: self._run_action(_Action.SYNC) mock_delay.assert_called_once_with(seconds=1) self.assertListEqual(self._mock_state_holder.mock_calls, [call.sync(), call.sync()])
def _assert_action(self, action: _Action, expected_state: _RendezvousState) -> None: self._run_action(action) self.assert_state_equal(self._state, expected_state) self.assertListEqual( self._mock_state_holder.mock_calls, [call.sync(), call.mark(), call.sync()] )
def test_run_raises_error_if_operation_timed_out(self) -> None: with self.assertRaises(RendezvousTimeoutError): self._run_action(_Action.ERROR_TIMEOUT) self.assertListEqual(self._mock_state_holder.mock_calls, [call.sync()])
def test_run_raises_error_if_rendezvous_is_closed(self) -> None: with self.assertRaises(RendezvousClosedError): self._run_action(_Action.ERROR_CLOSED) self.assertListEqual(self._mock_state_holder.mock_calls, [call.sync()])