Skip to content

VisualizationTool Integration Tests #22

@scottx611x

Description

@scottx611x

Currently we have a few Selenium-based Integration tests in Refinery for Vis-Tool Launches (IGV, HiGlass), but these are slowing down our test suite over there/are quite flaky to run due to Selenium waiting and would be more appropriate in this repo.

With that being said, the UI tests are nice but maybe a bit overkill. It would be great if we could just specify a sample input.json along with a Vis-Tool and try to run a container with it through django-docker-engine.

Since we already have access to the Refinery code in our CI here, we could have a new repo structure here like:

├── LICENSE
├── README.md
├── ci_tests.py
└── tool-annotations
    ├── heatmap-scatterplot
        ├── heatmap-scatterplot.json
        ├── input.json
    ├── higlass
        ├── higlass.json
        ├── input.json
    ├── igv
        ├── igv.json
        ├── input.json
   ├── refinery-developer-tool
        ├── refinery-developer-tool.json
        ├── input.json

Where we would provide input.json(s) along with our Tool Annotations and attempt to:

  • Create ToolDefinitions from these ToolAnnotations (we're doing this currently)
  • Launch a container through django-docker-engine utilizing the provided input.json. This would need to satisfy the code in VisualizationTool.launch() which would mean that we'd need to create valid Nodes & FileStoreItems which could start to get tricky.
  • Assert that we can get a 200 from each of the launched containers

EDIT: Thinking about this again, we could just have users provide the FILE_RELATIONSHIPS structure with urls pointing to reasonable test files that they could check into this repo as well (Could specify the raw.github.... versions). Then when we launch the Tool, we wouldn't have to worry about creating Refinery-specific objects.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions