def test_handle_sigchld_when_expected_error_and_terminate(self): client = Client(MagicMock()) client._processor = MagicMock() client.execute_role_based_procedure = MagicMock() client._processor.error_queue.get_nowait.return_value = (True, TERMINATE) client._should_run = True client._exception_raised = False client._handle_sigchld(SIGCHLD, None) client._processor.error_queue.get_nowait.assert_called_once_with() self.assertTrue(client._exception_raised) client.execute_role_based_procedure.assert_called_once_with()
def test_handle_sigchld_when_queue_is_empty(self): client = Client(MagicMock()) client._start_components = MagicMock() client._processor = MagicMock() client._processor.error_queue.get_nowait.side_effect = Empty client._should_run = True client._exception_raised = False client._handle_sigchld(SIGCHLD, None) client._processor.error_queue.get_nowait.assert_called_once_with() self.assertFalse(client._exception_raised) self.assertTrue(client._child_interrupted) client._start_components.assert_called_once_with(restart=True)
def test_handle_sigchld_when_expected_error_and_terminate(self): client = Client(MagicMock()) client._processor = MagicMock() client.execute_role_based_procedure = MagicMock() client._processor.error_queue.get_nowait.return_value = ( True, TERMINATE ) client._should_run = True client._exception_raised = False client._handle_sigchld(SIGCHLD, None) client._processor.error_queue.get_nowait.assert_called_once_with() self.assertTrue(client._exception_raised) client.execute_role_based_procedure.assert_called_once_with()
def test_handle_sigchld_when_queue_is_empty(self): client = Client(MagicMock()) client._start_components = MagicMock() client._processor = MagicMock() client._processor.error_queue.get_nowait.side_effect = Empty client._should_run = True client._exception_raised = False client._handle_sigchld(SIGCHLD, None) client._processor.error_queue.get_nowait.assert_called_once_with() self.assertFalse(client._exception_raised) self.assertTrue(client._child_interrupted) client._start_components.assert_called_once_with(restart=True)
def test_handle_sigchld_when_not_expected(self): client = Client(MagicMock()) client.log = MagicMock() client._processor = MagicMock() client._shutdown = MagicMock() client._processor.error_queue.get_nowait.return_value = (False, TERMINATE) client._should_run = True client._exception_raised = False client._handle_sigchld(SIGCHLD, None) client._processor.error_queue.get_nowait.assert_called_once_with() self.assertTrue(client._exception_raised) client._shutdown.assert_called_once_with()
def test_handle_sigchld_when_not_expected(self): client = Client(MagicMock()) client.log = MagicMock() client._processor = MagicMock() client._shutdown = MagicMock() client._processor.error_queue.get_nowait.return_value = ( False, TERMINATE ) client._should_run = True client._exception_raised = False client._handle_sigchld(SIGCHLD, None) client._processor.error_queue.get_nowait.assert_called_once_with() self.assertTrue(client._exception_raised) client._shutdown.assert_called_once_with()
def test_role_based_procedures_are_called_outside_of_main_loop(self): with patch('hermes.log.get_logger'): with patch('hermes.client.signal'): client = Client(MagicMock()) random_raised = randint(1, 10000) client._exception_raised = random_raised client._start_observer = MagicMock() client.execute_role_based_procedure = MagicMock( side_effect=Exception) self.assertRaises(Exception, client.run) client.execute_role_based_procedure.assert_called_once_with() # Raised value should be the same as that which we set self.assertEqual(client._exception_raised, random_raised)
def test_role_based_procedures_are_called_outside_of_main_loop(self): with patch('hermes.log.get_logger'): with patch('hermes.client.signal'): client = Client(MagicMock()) random_raised = randint(1, 10000) client._exception_raised = random_raised client._start_observer = MagicMock() client.execute_role_based_procedure = MagicMock( side_effect=Exception ) self.assertRaises(Exception, client.run) client.execute_role_based_procedure.assert_called_once_with() # Raised value should be the same as that which we set self.assertEqual(client._exception_raised, random_raised)