Example #1
0
def test_timeout_backoff():
    condition = WaitCondition(after_call_count=4, return_value="second")
    sleeper = Sleeper()

    exception_called = False
    try:
        wait_on(condition, "condition", 8, delta=2, polling_backoff=1, sleep_=sleeper.sleep)
    except TimeoutAssertionError:
        exception_called = True
    assert len(sleeper.sleeps) == 3
    assert sleeper.sleeps[0] == 2  # delta of 2
    assert sleeper.sleeps[1] == 3  # delta of 2 + 1 backoff
    assert sleeper.sleeps[2] == 4  # delta of 2 + 2 backoff
    assert exception_called
Example #2
0
def test_timeout_third_call():
    condition = WaitCondition(after_call_count=4, return_value="second")
    sleeper = Sleeper()

    exception_called = False
    try:
        wait_on(condition, "condition", 5, delta=2, sleep_=sleeper.sleep)
    except TimeoutAssertionError:
        exception_called = True
    assert len(sleeper.sleeps) == 3
    assert sleeper.sleeps[0] == 2  # delta of 2
    assert sleeper.sleeps[1] == 2  # delta of 2
    assert sleeper.sleeps[2] == 2  # delta of 2
    assert exception_called
Example #3
0
def test_timeout_first_call():
    condition = WaitCondition(after_call_count=1, return_value="second")
    sleeper = Sleeper()

    exception_called = False
    try:
        wait_on(condition, "never met condition", 1, delta=2, sleep_=sleeper.sleep)
    except TimeoutAssertionError as e:
        assert "never met condition" in str(e)
        assert "after 2.0 seconds" in str(e)
        exception_called = True
    assert len(sleeper.sleeps) == 1
    assert sleeper.sleeps[0] == 2  # delta of 2
    assert exception_called
Example #4
0
def test_application_stack_post_fork(monkeypatch):
    app = GalaxyDataTestApp()
    monkeypatch.setenv("SERVER_SOFTWARE", SERVER_SOFTWARE)
    monkeypatch.setenv("GUNICORN_WORKER_ID", "100")
    monkeypatch.setattr(GunicornApplicationStack, "do_post_fork", True)
    stack_instance = application_stack_instance(app=app, config=app.config)
    assert isinstance(stack_instance, GunicornApplicationStack)
    stack_instance.register_postfork_function(
        lambda: stack_instance.set_postfork_server_name(app))
    assert not app.config.server_name.endswith(".100")
    stack_instance.late_postfork()
    stack_instance.late_postfork_event.set()
    wait_on(lambda: app.config.server_name.endswith(".100") or None,
            desc="server name to change",
            timeout=1,
            delta=0.1)
Example #5
0
def test_return_on_third_call():
    condition = WaitCondition(after_call_count=2, return_value="second")
    sleeper = Sleeper()

    assert "second" == wait_on(condition, "condition", 5, delta=2, sleep_=sleeper.sleep)
    assert len(sleeper.sleeps) == 2
    assert sleeper.sleeps[0] == 2  # delta of 2
    assert sleeper.sleeps[1] == 2  # delta of 2
Example #6
0
def test_immediate_return():
    condition = WaitCondition(return_value="first")
    sleeper = Sleeper()

    assert "first" == wait_on(condition,
                              "condition",
                              100,
                              sleep_=sleeper.sleep)
    assert len(sleeper.sleeps) == 0
Example #7
0
import bioblend.galaxy

from galaxy.tool_util.verify.wait import wait_on

log = logging.getLogger('__name__')

N_CHARS = int(os.environ.get('N_CHARS', 14))
N_THREADS = os.environ.get('N_THREADS', 1)
GALAXY_URL = os.environ.get('GALAXY_URL', 'https://your-galaxy')
GALAXY_API_KEY = os.environ.get('GALAXY_API_KEY', 'adminkey')
log.debug(f"Running test tool with {N_CHARS} input dataset")

gi = bioblend.galaxy.GalaxyInstance(GALAXY_URL, GALAXY_API_KEY)
history_id = gi.histories.create_history('test_history')['id']
job = gi.tools.paste_content('A' * N_CHARS, history_id=history_id)
hda_id = job['outputs'][0]['id']
rval = gi.tools.run_tool(history_id, 'testing',
                         {'input1': {
                             'src': 'hda',
                             'id': hda_id
                         }})
job_id = rval['jobs'][0]['id']
wait_on(lambda: gi.jobs.show_job(job_id)['state'] == 'ok',
        'waiting for test job',
        timeout=60)
output_id = rval['outputs'][0]['id']
gi.datasets.download_dataset(output_id)
output = gi.datasets.download_dataset(output_id).decode()
assert output == f"Running with '{N_THREADS}' threads\n", f"expecting {N_THREADS} threads, but output was {output}"