def test_succeeded_execution_handling(self): testworker = worker.Worker(None) live_action_db = self._get_execution_db_model() testworker.execute_action(live_action_db) updated_live_action_db = get_liveaction_by_id(live_action_db.id) self.assertEqual(updated_live_action_db.status, action_constants.LIVEACTION_STATUS_RUNNING)
def test_runner_info(self): testworker = worker.Worker(None) live_action_db = self._get_execution_db_model() testworker.execute_action(live_action_db) updated_live_action_db = get_liveaction_by_id(live_action_db.id) self.assertEqual(updated_live_action_db.status, action_constants.LIVEACTION_STATUS_RUNNING) self.assertTrue(updated_live_action_db.runner_info, 'runner_info should have value.')
def test_basic_execution_fail(self): testworker = worker.Worker(None) live_action_db = self._get_execution_db_model( status=action_constants.LIVEACTION_STATUS_FAILED) testworker.execute_action(live_action_db) updated_live_action_db = get_liveaction_by_id(live_action_db.id) self.assertEqual(updated_live_action_db.status, action_constants.LIVEACTION_STATUS_FAILED)
def test_failed_execution_handling(self): testworker = worker.Worker(None) live_action_db = self._get_execution_db_model() try: testworker.execute_action(live_action_db) self.assertTrue(False, 'Exception expected.') except Exception: self.assertTrue(True) updated_live_action_db = get_liveaction_by_id(live_action_db.id) self.assertEqual(updated_live_action_db.status, action_constants.LIVEACTION_STATUS_FAILED)
def test_basic_execution_canceled(self): testworker = worker.Worker(None) live_action_db = self._get_execution_db_model( status=action_constants.LIVEACTION_STATUS_CANCELED) result = getattr(live_action_db, 'result', None) self.assertTrue(result == {}, getattr(live_action_db, 'result', None)) testworker.execute_action(live_action_db) updated_live_action_db = get_liveaction_by_id(live_action_db.id) self.assertEqual(updated_live_action_db.status, action_constants.LIVEACTION_STATUS_CANCELED) result = getattr(updated_live_action_db, 'result', None) self.assertTrue(result['message'] is not None)
from st2reactor.rules.enforcer import RuleEnforcer from st2common.util import reference from st2common.transport.publishers import CUDPublisher from st2common.services import action as action_service from st2common.models.system.common import ResourceReference from st2common.models.db.action import ActionExecutionDB from st2common.models.api.reactor import TriggerTypeAPI, TriggerAPI, TriggerInstanceAPI from st2common.models.api.rule import RuleAPI from st2common.models.api.action import RunnerTypeAPI, ActionAPI, ActionExecutionAPI import st2common.util.action_db as action_utils from st2common.constants.action import ACTIONEXEC_STATUS_SUCCEEDED from st2common.persistence.reactor import TriggerType, Trigger, TriggerInstance, Rule from st2common.persistence.action import RunnerType, Action, ActionExecution from st2common.persistence.history import ActionExecutionHistory CHAMPION = worker.Worker(None) HISTORIAN = history.Historian(None, timeout=1, wait=1) MOCK_FAIL_HISTORY_CREATE = False def process_create(payload): try: if isinstance(payload, ActionExecutionDB): if not MOCK_FAIL_HISTORY_CREATE: HISTORIAN.record_action_execution(payload) CHAMPION.execute_action(payload) except Exception as e: print(e) def process_update(payload):