示例#1
0
def test_instances_creation(monkeypatch, generators):
    """Test the creation of an activity instance id with the use of a local
    context.
    """

    monkeypatch.setattr(activity.Activity, '__init__', lambda self: None)

    local_activity = activity.Activity()
    external_activity = activity.ExternalActivity(timeout=60)

    for current_activity in [local_activity, external_activity]:
        current_activity.generators = generators

        if len(current_activity.generators):
            instances = list(current_activity.instances(dict()))
            assert len(instances) == pow(10, len(generators))
            for instance in instances:
                assert isinstance(instance.local_context.get('i'), int)

                if len(generators) == 2:
                    assert isinstance(instance.local_context.get('d'), int)
        else:
            instances = list(current_activity.instances(dict()))
            assert len(instances) == 1
            assert isinstance(instances[0].local_context, dict)
            # Context is empty since no generator was used.
            assert not instances[0].local_context
示例#2
0
def test_worker_infinite_loop_on_external(monkeypatch):
    """There is no worker for external activities.
    """

    external_activity = activity.ExternalActivity(timeout=10)
    current_run = external_activity.run
    spy = MagicMock()

    def run():
        spy()
        return current_run()

    monkeypatch.setattr(external_activity, 'run', run)
    activity.worker_runner(external_activity)

    # This test might not fail, but it will hang the test suite since it is
    # going to trigger an infinite loop.
    assert spy.call_count == 1
示例#3
0
def test_external_activity_timeouts(monkeypatch, boto_client, generators):
    """Test the creation of an external activity timeouts.
    """

    timeout = 120
    start_timeout = 1000

    current_activity = activity.ExternalActivity(timeout=timeout)
    current_activity.hydrate(dict(schedule_to_start=start_timeout))
    current_activity.generators = generators

    total_generators = pow(10, len(current_activity.generators))
    schedule_to_start = start_timeout * total_generators
    for instance in current_activity.instances({}):
        assert current_activity.pool_size == total_generators
        assert instance.schedule_to_start == schedule_to_start
        assert instance.timeout == timeout
        assert instance.schedule_to_close == (schedule_to_start +
                                              instance.timeout)