Exemple #1
0
def run_activity_worker(flow, **kwargs):
    """Launch the activity worker process.

    Args:
        flow (module): Garcon flow module.

    """
    worker = activity.ActivityWorker(flow)
    worker.run()
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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()
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
from garcon import activity

import flow

hello_world_flow = flow.HelloWorldFlow('dev', '1.0')
worker = activity.ActivityWorker(hello_world_flow)
worker.run()