def test_calculate_heartbeat(): """Check methods that have set timeout. """ @task.decorate(heartbeat=5) def task_a(): pass current_runner = runner.BaseRunner(task_a) assert current_runner.heartbeat(EMPTY_CONTEXT) == 5 @task.decorate(heartbeat=3) def task_b(): pass current_runner = runner.BaseRunner(task_b) assert current_runner.heartbeat(EMPTY_CONTEXT) == 3 @task.decorate(heartbeat=4498) def task_c(): pass def task_d(): pass current_runner = runner.BaseRunner( task_a, task_b, task_c, task_d) assert current_runner.heartbeat(EMPTY_CONTEXT) == 4498
def test_calculate_timeout(): """Check methods that have set timeout. """ timeout = 10 @task.timeout(timeout) def task_a(): pass current_runner = runner.BaseRunner(task_a) assert current_runner.timeout(EMPTY_CONTEXT) == timeout @task.decorate(timeout=timeout) def task_b(): pass current_runner = runner.BaseRunner(task_b) assert current_runner.timeout(EMPTY_CONTEXT) == timeout def task_c(): pass current_runner = runner.BaseRunner(task_a, task_c) current_timeout = current_runner.timeout(EMPTY_CONTEXT) expected_timeout = timeout + runner.DEFAULT_TASK_TIMEOUT assert current_timeout == expected_timeout
def test_create_activity_instance_input_with_zero_or_empty_values(monkeypatch): """Test the creation of a context for an activity instance input. """ @task.decorate() def task_a(value1, value2, value3, value4): pass activity_mock = MagicMock() activity_mock.name = 'activity' activity_mock.runner = runner.BaseRunner( task_a.fill(value1='zero', value2='empty_list', value3='empty_dict', value4='none')) instance = activity.ActivityInstance(activity_mock, local_context=dict(zero=0, empty_list=[], empty_dict={}, none=None)) resp = instance.create_execution_input() assert len(resp) == 6 assert resp.get('zero') == 0 assert resp.get('empty_list') == [] assert resp.get('empty_dict') == {} assert 'none' not in resp
def test_execute_default_task_runner(): """Should throw an exception. """ current_runner = runner.BaseRunner() with pytest.raises(NotImplementedError): current_runner.execute(None, None)
def test_runner_requirements_without_decoration(): """Should just throw an exception. """ def task_a(): pass current_runner = runner.BaseRunner(task_a) with pytest.raises(runner.NoRunnerRequirementsFound): current_runner.requirements(EMPTY_CONTEXT)
def test_create_activity_instance_input_without_decorate(monkeypatch): """Test the creation of a context input without the use of a decorator. """ def task_a(value): pass activity_mock = MagicMock() activity_mock.name = 'activity' context = dict(foo='bar') local_context = dict(context='yes') activity_mock.runner = runner.BaseRunner(task_a) instance = activity.ActivityInstance(activity_mock, local_context=local_context, execution_context=context) resp = instance.create_execution_input() assert resp.get('foo') == 'bar' assert resp.get('context') == 'yes'
def test_create_activity_instance_input(monkeypatch): """Test the creation of a context for an activity instance input. """ @task.decorate() def task_a(value): pass activity_mock = MagicMock() activity_mock.name = 'activity' activity_mock.runner = runner.BaseRunner(task_a.fill(value='context')) instance = activity.ActivityInstance( activity_mock, local_context=dict(context='yes', unused='no'), execution_context=dict(somemore='values')) resp = instance.create_execution_input() assert len(resp) == 2 assert resp.get('context') == 'yes' assert resp.get('somemore') == 'values'
def test_runner_requirements(): """Test the requirements for the runner """ @task.decorate() def task_a(): pass @task.decorate(timeout=20) def task_b(): pass value_1 = 'context.value' value_2 = 'context.value_1' current_runner = runner.BaseRunner(task_a.fill(foo=value_1), task_b.fill(foobar=value_2)) requirements = current_runner.requirements(EMPTY_CONTEXT) assert len(requirements) == 2 assert value_1 in requirements assert value_2 in requirements
def test_calculate_default_timeout(): """Tasks that do not have a set timeout get the default timeout. """ task_list = runner.BaseRunner(lambda x: x) assert task_list.timeout(EMPTY_CONTEXT) == runner.DEFAULT_TASK_TIMEOUT
def test_calculate_heartbeat_with_no_tasks(): """Task list without tasks has no heartbeat. """ task_list = runner.BaseRunner() assert task_list.heartbeat(EMPTY_CONTEXT) == 0
def test_calculate_timeout_with_no_tasks(): """Task list without task has no timeout. """ task_list = runner.BaseRunner() assert task_list.timeout(EMPTY_CONTEXT) == 0