Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VisualizationTool Integration Tests #22

Open
scottx611x opened this issue Feb 22, 2018 · 1 comment
Open

VisualizationTool Integration Tests #22

scottx611x opened this issue Feb 22, 2018 · 1 comment
Assignees

Comments

@scottx611x
Copy link
Member

scottx611x commented Feb 22, 2018

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.

@scottx611x scottx611x self-assigned this Feb 22, 2018
@scottx611x
Copy link
Member Author

scottx611x added a commit to refinery-platform/refinery-platform that referenced this issue Feb 28, 2018
scottx611x added a commit to refinery-platform/refinery-platform that referenced this issue Mar 1, 2018
* Add VisualizationToolProxy so that we can check user perms. & provide persistant VisTool urls

* Add `user_has_access_to_tool()`

* Fix reference

* Add test coverage

* Fix typo

* Rename VizualizationProxy to AutoRelaunchProxy

* Simplify logic

* Less wordy error messages

* Fix test

* Just assert that we can launch Igv;
Towards #2238 and refinery-platform/visualization-tools#22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant