Exemple #1
0
    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)
Exemple #2
0
    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)