def run_activity_worker(flow, **kwargs): """Launch the activity worker process. Args: flow (module): Garcon flow module. """ worker = activity.ActivityWorker(flow) worker.run()
def test_create_activity_worker(monkeypatch): """Test the creation of an activity worker. """ from tests.fixtures.flows import example worker = activity.ActivityWorker(example) assert len(worker.activities) == 4 assert worker.flow is example assert not worker.worker_activities
def test_create_activity_worker(monkeypatch): """Test the creation of an activity worker. """ monkeypatch.setattr(activity.Activity, '__init__', lambda self: None) from tests.fixtures.flows import example worker = activity.ActivityWorker(example) assert len(worker.activities) == 4 assert worker.flow is example assert not worker.worker_activities
def test_worker_run(monkeypatch, boto_client): """Test running the worker. """ from tests.fixtures.flows import example worker = activity.ActivityWorker(example) assert len(worker.activities) == 4 for current_activity in worker.activities: monkeypatch.setattr(current_activity, 'run', MagicMock(return_value=False)) worker.run() assert len(worker.activities) == 4 for current_activity in worker.activities: assert current_activity.run.called
def test_worker_run(monkeypatch): """Test running the worker. """ monkeypatch.setattr(activity.Activity, '__init__', lambda self: None) from tests.fixtures.flows import example worker = activity.ActivityWorker(example) assert len(worker.activities) == 4 for current_activity in worker.activities: monkeypatch.setattr(current_activity, 'run', MagicMock(return_value=False)) worker.run() assert len(worker.activities) == 4 for current_activity in worker.activities: current_activity.run.assert_any_call()
def test_worker_run_with_skipped_activities(monkeypatch): """Test running the worker with defined activities. """ monkeypatch.setattr(activity.Activity, '__init__', lambda self: None) monkeypatch.setattr(activity.Activity, 'run', MagicMock(return_value=False)) from tests.fixtures.flows import example worker = activity.ActivityWorker(example, activities=['activity_1']) assert len(worker.worker_activities) == 1 for current_activity in worker.activities: monkeypatch.setattr(current_activity, 'run', MagicMock(return_value=False)) worker.run() for current_activity in worker.activities: if current_activity.name == 'activity_1': assert current_activity.run.called else: assert not current_activity.run.called
def test_worker_run(monkeypatch): """Test running the worker. """ monkeypatch.setattr(activity.Activity, '__init__', lambda self: None) from tests.fixtures.flows import example worker = activity.ActivityWorker(example) assert len(worker.activities) == 4 for current_activity in worker.activities: monkeypatch.setattr(current_activity, 'run', MagicMock(return_value=False)) worker.run() assert len(worker.activities) == 4 for current_activity in worker.activities: # this check was originally `assert current_activity.run.called` # for some reason this fails on py2.7, so we explicitly check for # `called == 1`. assert current_activity.run.called == 1
from garcon import activity from garcon import decider from threading import Thread import time import boto3 import workflow # Initiate the workflow on the dev domain and custom_decider name. client = boto3.client('swf', region_name='us-east-1') workflow = workflow.Workflow(client, 'dev', 'custom_decider') deciderworker = decider.DeciderWorker(workflow) client.start_workflow_execution( domain=workflow.domain, workflowId='unique-workflow-identifier', workflowType=dict( name=workflow.name, version='1.0'), executionStartToCloseTimeout='3600', taskStartToCloseTimeout='3600', childPolicy='TERMINATE', taskList=dict(name=workflow.name)) Thread(target=activity.ActivityWorker(workflow).run).start() while(True): deciderworker.run() time.sleep(1)
from garcon import activity from garcon import decider from threading import Thread import boto.swf.layer2 as swf import time import test_flow deciderworker = decider.DeciderWorker(test_flow) swf.WorkflowType(name=test_flow.name, domain=test_flow.domain, version='1.0', task_list=test_flow.name).start() Thread(target=activity.ActivityWorker(test_flow).run).start() while (True): deciderworker.run() time.sleep(1)
from garcon import activity import flow hello_world_flow = flow.HelloWorldFlow('dev', '1.0') worker = activity.ActivityWorker(hello_world_flow) worker.run()