Commit f221654d authored by Cage, Gregory's avatar Cage, Gregory
Browse files

Fix interactive tool test

parent df2b4682
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
"""Tests for tools."""

import pytest
from bioblend.galaxy import GalaxyInstance
from bioblend.galaxy.datasets import DatasetClient

@@ -13,8 +12,7 @@ TEST_TOOL_ID = "neutrons_remote_command"
TEST_INT_TOOL_ID = "interactive_tool_generic_output"


@pytest.mark.skip()
def test_tool(nova_instance: Nova) -> None:
def test_run_tool(nova_instance: Nova) -> None:
    with nova_instance.connect() as connection:
        store = connection.create_data_store(name="nova_galaxy_testing")
        test_tool = Tool(TEST_TOOL_ID)
@@ -24,21 +22,21 @@ def test_tool(nova_instance: Nova) -> None:
        assert "hostname:" in data.get_content()


def test_tool_interactive(nova_instance: Nova, galaxy_instance: GalaxyInstance) -> None:
def test_run_tool_interactive(nova_instance: Nova, galaxy_instance: GalaxyInstance) -> None:
    with nova_instance.connect() as connection:
        store = connection.create_data_store(name="nova_galaxy_testing")
        store.persist()
        notebook = Dataset(path="tests/test_files/test_jupyter_notebook.ipynb")
        test_tool = Tool(TEST_INT_TOOL_ID)
        params = Parameters()
        params.add_input("mode|mode_select", "previous")
        params.add_input("ipynb", notebook)
        params.add_input("run_it", True)
        link = test_tool.run_interactive(data_store=store, params=params)
        link = test_tool.run_interactive(data_store=store, params=params, check_url=False)
        assert link is not None
        entry_points = galaxy_instance.make_get_request(f"{store.nova_connection.galaxy_url}/api/entry_points")
        entry_points = galaxy_instance.make_get_request(
            f"{store.nova_connection.galaxy_url}/api/entry_points?running=true"
        )
        for ep in entry_points.json():
            print(ep)
            if ep.get("target", None):
                if link == f"{store.nova_connection.galaxy_url}{ep['target']}":
                    galaxy_instance.jobs.wait_for_job(job_id=ep["job_id"])
@@ -46,11 +44,12 @@ def test_tool_interactive(nova_instance: Nova, galaxy_instance: GalaxyInstance)
                    test_output = None
                    for out in outputs:
                        if out.get("name", None) == "output_single":
                            test_output = out["id"]
                            test_output = out["dataset"]["id"]
                    assert test_output is not None
                    dataset_client = DatasetClient(store.nova_connection.galaxy_instance)
                    test_text = dataset_client.download_dataset(
                        test_output, use_default_filename=False, file_path=None
                    ).decode("utf-8")
                    assert test_text == "this is a test"
                    break
                    return
        raise Exception("Did not find interactive tool while testing.")