def test_execute_all_status_return(self, mock_execute, mock_import, mock_persist): from eskapade import StatusCode, ProcessManager pm = ProcessManager() pm.service( ConfigObject)['analysisName'] = 'test_execute_all_status_return' c1 = Chain('1') c2 = Chain('2') c3 = Chain('fail') c4 = Chain('4') pm.chains = [c1, c2, c3, c4] status = pm.execute_all() self.assertEqual(status, StatusCode.Failure) executed_chains = [arg[0] for arg in mock_execute.call_args_list] self.assertNotIn(c4, executed_chains) pm.reset() pm.service( ConfigObject)['analysisName'] = 'test_execute_all_status_return' mock_execute.reset_mock() c1 = Chain('1') c2 = Chain('2') c3 = Chain('skip') c4 = Chain('4') pm.chains = [c1, c2, c3, c4] status = pm.execute_all() self.assertEqual(status, StatusCode.Success) executed_chains = [arg[0][0] for arg in mock_execute.call_args_list] self.assertIn(c4, executed_chains)
def test_execute_all(self, mock_execute, mock_idx, mock_import, mock_persist): from eskapade import ConfigObject, StatusCode, ProcessManager pm = ProcessManager() pm.service(ConfigObject)['analysisName'] = 'test_execute_all' mock_execute.return_value = StatusCode.Success pm.chains = [Chain(str(it + 1)) for it in range(3)] for it, ch in enumerate(pm.chains): ch.prevChainName = str(it) status = pm.execute_all() self.assertEqual(status, StatusCode.Success) mock_import.assert_not_called() calls = [mock.call(ch) for ch in pm.chains] mock_execute.assert_has_calls(calls, any_order=False) mock_persist.assert_called() mock_execute.reset_mock() mock_import.reset_mock() mock_persist.reset_mock() pm.reset() pm.chains = [Chain(str(it + 1)) for it in range(5)] for it, ch in enumerate(pm.chains): ch.prevChainName = str(it) settings = pm.service(ConfigObject) settings['analysisName'] = 'test_execute_all' settings['doNotStoreResults'] = False settings['storeResultsEachChain'] = True settings['beginWithChain'] = '2' settings['endWithChain'] = '3' status = pm.execute_all() mock_import.assert_called_once() calls = [mock.call(ch) for ch in pm.chains[1:3]] mock_execute.assert_has_calls(calls, any_order=False) mock_persist.assert_called() executed_chains = [arg[0] for arg in mock_execute.call_args_list] for ch_idx in [0, 3, 4]: self.assertNotIn(pm.chains[ch_idx], executed_chains)