def test_execute_status_return(self): from eskapade import StatusCode, ProcessManager pm = ProcessManager() c2 = Chain('skip') c3 = Chain('fail') with mock.patch('eskapade.core.run_elements.Chain.initialize', side_effect=_status_side_effect, autospec=True): with mock.patch('eskapade.core.run_elements.Chain.execute') as \ mock_execute: with mock.patch('eskapade.core.run_elements.Chain.finalize') as \ mock_finalize: status = pm.execute(c2) self.assertEqual(status, StatusCode.SkipChain) self.assertEqual(pm.prevChainName, c2.name) # assert that chain is indeed skipped assert not mock_execute.called assert not mock_finalize.called status = pm.execute(c3) self.assertEqual(status, StatusCode.Failure) with mock.patch('eskapade.core.run_elements.Chain.initialize', return_value=StatusCode.Success): with mock.patch('eskapade.core.run_elements.Chain.execute', side_effect=_status_side_effect, autospec=True): status = pm.execute(c3) self.assertEqual(status, StatusCode.Failure) with mock.patch('eskapade.core.run_elements.Chain.initialize', return_value=StatusCode.Success): with mock.patch('eskapade.core.run_elements.Chain.execute', return_value=StatusCode.Success): with mock.patch('eskapade.core.run_elements.Chain.finalize', side_effect=_status_side_effect, autospec=True): status = pm.execute(c3) self.assertEqual(status, StatusCode.Failure)
def test_execute(self, mock_finalize, mock_execute, mock_initialize): from eskapade import StatusCode, ProcessManager pm = ProcessManager() c1 = Chain('1') mock_initialize.return_value = StatusCode.Success mock_execute.return_value = StatusCode.Success mock_finalize.return_value = StatusCode.Success mock_parent = mock.MagicMock(autospec=True) mock_parent.attach_mock(mock_initialize, 'initialize') mock_parent.attach_mock(mock_execute, 'execute') mock_parent.attach_mock(mock_finalize, 'finalize') calls = [ mock.call.initialize(), mock.call.execute(), mock.call.finalize() ] status = pm.execute(c1) mock_parent.assert_has_calls(calls, any_order=False) self.assertEqual(pm.prevChainName, c1.name) self.assertEqual(status, StatusCode.Success)