-
Notifications
You must be signed in to change notification settings - Fork 1
Description
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
ToolDefinitionsfrom 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 inVisualizationTool.launch()which would mean that we'd need to create validNodes&FileStoreItemswhich 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.