Commit Graph
225 Commits
Author SHA1 Message Date
John Chilton adcd733332 Fix broken gxformat2 imports. 2018-10-08 12:55:32 -04:00
Dannon f6d3059f7e Merge pull request #6422 from jxtx/styles-refresh-2018
Initial work on updating styles
2018-09-21 16:32:45 -04:00
John Chilton cb9cbfe796 Fix tour tests. 2018-09-20 11:09:14 -04:00
guerler 4054ffc311 Fix test cases 2018-09-20 07:15:44 -04:00
Nicola Soranzo 0c931235af Change all remaining old-style classes to new style 2018-09-17 12:26:07 +01:00
John Chilton 8f979b4da1 Workflow replacement parameters polish.
- Selenium test case demonstrating their use in simple workflows.
- API test demonstrating they work with nested workflows from the run perspective.
- Update run variant of workflow to_dict to parse out replacement parameters to display on the backend and tweak the client to just accept these.
- Parse out replacement parameters for subworkflows recursively, include in new run output attribute - nested workflow replacement parameters work now.
- Selenium test case demosntrating subworkflow replacement parameters are rendered and used when submitted.
2018-09-07 11:22:20 -04:00
John Chilton 7806a84d1c Implement runtime parameters in nested workflows. 2018-09-06 14:43:22 -04:00
John Chilton 6a266a19a9 More tests for runtime workflow parameters. 2018-09-06 09:02:55 -04:00
John Chilton 9b488ff291 One last Selenium fix for collection interface change. 2018-09-05 14:00:57 -04:00
John Chilton dd0a6884ba Fixes... 2018-08-29 15:40:39 -04:00
Marius van den Beek 0e69ca8bfb Merge pull request #6545 from jmchilton/rule_builder_use_group_tags
Allow Consuming Tags in the Apply Rules Tool
2018-08-26 11:17:14 +02:00
John Chilton 4d1ce0f431 Cancel jobs when exiting test_history decorator.
Should reduce the probability of a test interferring with other tests.
2018-08-09 11:37:18 -04:00
John Chilton 9552830121 More Selenium test fixes.
A lot broke while we weren't running the tests against PRs.
2018-08-01 12:13:27 -04:00
John Chilton d8bd5f4690 Many selenium tests fixes for recent dev changes. 2018-07-30 15:10:12 -04:00
John Chilton 5807230253 Implement rule builder rule to quickly grab group tag value.
Should make it a lot easier to nested and filter on group tag values.
2018-07-27 08:05:05 -04:00
Marius van den Beek 1b50504678 Merge pull request #6066 from jmchilton/apply_rules_tutorials
Rules - test case for apply rules tutorial.
2018-06-12 11:11:56 +02:00
John Chilton 050c9e99c6 Rules - test case for apply rules tutorial.
Demonstrates using the Apply Rules collection operation tool against existing collections to:

 - Use grouping to build nested lists from flat ones.
 - Invert nested collections.
 - Filter collections.
 - Filter while also grouping to build nested collections.

Based on count data used in the DESeq2 tutorial (http://bioconductor.org/packages/devel/bioc/vignettes/DESeq2/inst/doc/DESeq2.html), originally from the Bioconductor Pasilla package (http://bioconductor.org/packages/release/data/experiment/html/pasilla.html). Citation: Huber W, Reyes A (2018). pasilla: Data package with per-exon and per-gene read counts of RNA-seq samples of Pasilla knock-down by Brooks et al., Genome Research 2011.. R package version 1.8.0.
2018-05-05 16:52:02 -04:00
John Chilton fad0392166 Disable broken tests. 2018-05-01 10:36:39 -04:00
John Chilton cf2f6d7dcf Fix selenium tests failing because APPLY_RULES appears twice in panel. 2018-04-24 14:17:52 -04:00
John Chilton 8af243c176 Allow rule based operations on existing collections.
Allow the rules DSL & GUI component to operate on existing collections to allow filtering, sorting, modifying identifiers and general re-organization of existing collections (e.g. the outputs of tools). Implementing this as a collection operation tool so that it should be executable interactively in the tool form and in a batch fashion as part of workflow executions.

For this to be tracked properly as a tool execution and to work properly in the tool form, I've implemented a new tool framework and tool form parameter type called "rules".

This can thought of as a more GUI friendly alternative to my proposed collection operations that consumed JavaScript expressions.

This includes API tests for both tool and workflow execution of the new tool as well as Selenium tests for tool form execution, workflow editor interactions, and workflow running.
2018-04-24 11:10:43 -04:00
John Chilton 20c8260108 Redo footer inputs for rule builder.
Gives more space for name and genome - dynamically resizes to space given with some reasonable minimum and maximum widths for widgets.
2018-04-18 19:24:06 -04:00
Dannon 60b5a9a52a Merge pull request #5886 from jmchilton/selenium_workflow_run
More, better workflow run Selenium tests.
2018-04-17 23:03:01 -04:00
Martin Cech 5d82c1a09f Merge pull request #5807 from dannon/bs4
Bootstrap 4 !!!!
2018-04-17 15:21:05 -04:00
Dannon Baker 504e030291 WIP historyimport fixes 2018-04-17 13:30:46 -04:00
John Chilton 43cd9335f1 Fix for Selenium workflow editor test not fully updating annotation.
Sometimes the last character of the annotation is missing - gotta wait for the last update of form listener I suppose.
2018-04-17 07:32:36 -04:00
Dannon Baker 4ea51e9fc4 Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-16 09:01:14 -04:00
John Chilton aafd9de76b Add more complicated workflow run test case.
Re-use test_data specification used by many of the API workflow tests and a workflow used by another test. Add abstractions and DOM element for mapping labeled test data to tool form inputs.
2018-04-13 13:23:22 -04:00
John Chilton 54721122e7 Small fixes, enhancements for workflow run Selenium tests. 2018-04-13 13:21:57 -04:00
John Chilton b24a1b723d Small fix for workflow editor Selenium testing. 2018-04-13 13:21:57 -04:00
Martin Cech eb67d422ef Merge pull request #5823 from jmchilton/rule_tweaks
Various Improvements for the Rule Builder Widget
2018-04-13 11:35:23 -04:00
Dannon Baker f7f8bfcc0c Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-13 08:58:34 -04:00
John Chilton 2cc650078d More, better workflow editor Selenium tests - part 2.
- More stuff tested:
  - Connecting and disconnecting simple terminals as well as mapping terminals (ribbons).
  - Rendering simple workflows, workflow with output collections, workflow with mapping, and workflow with a subworkflow.
  - Collapsing side panels in the workflow editor.
- Small tweaks to editor DOM.
- More screenshots.
2018-04-12 21:25:41 -04:00
Dannon Baker d0a4024a84 Fix saved history testing menu options to work with new dropdowns. 2018-04-12 13:41:38 -04:00
Dannon Baker 7daa714351 Fix final workflow management test for new list structure. 2018-04-12 13:31:17 -04:00
Dannon Baker bc7da96bb6 Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-12 12:15:19 -04:00
John Chilton fa1231e9ec Minor build fixes.
Fix qunit issue and linting issue introduced with #5876.
2018-04-11 21:45:46 -04:00
John Chilton 79f664aa4e More, better workflow editor Selenium tests.
- More stuff tested:
  - Setting input name and annotation, saving, reloading.
  - Simple tests for collection inputs in addition to data inputs.
  - A simple workflow renders its connections.
- More screenshots.
- Expanded use of navigation.yml for abstraction description of elements.
- More abstractions for probing the workflow in the editor - should serve as a basis for additional tests.
- Decorate editor DOM to allow finding elements in reproducible ways (enables testing, but should help with tours as well).
- Make editor tests more robust by:
  - Doing more appropriate waiting, instead of adding sleeps for jQuery interactions.
  - Not assuming each test occurs with a fresh user (and hence workflow list).
2018-04-11 12:42:26 -04:00
Dannon Baker ae8b8d9fdf Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-09 09:59:46 -04:00
John Chilton b3f589cc93 For rule builder, use Python-like regular expressions in-browser.
Leverages the [pyre-to-regexp](https://github.com/jmchilton/pyre-to-regexp) that I recently published for this purpose.
2018-04-07 09:17:37 -04:00
Dannon Baker 3d7c8a233c Fix one failing library selenium test. 2018-04-06 10:12:01 -04:00
Dannon Baker f1cd781337 Fix workflow management selenium test (I hope) 2018-04-05 21:53:23 -04:00
John Chilton 9674735c4a Fix failing paired colleciton builder test by increasing test window size.
This isn't an ideal fix - someone probably should go in and compress that widget to fit in the original 900 px.
2018-04-04 21:36:14 -04:00
John Chilton 4e4dbc8823 Expand selenium test coverage.
Initial admin app tests including screenshots of display applications, data tables, data types, and job management.
2018-04-03 20:10:39 -04:00
John Chilton 7e627c1ccc Fix registration.test_landing selenium test for BS4 branch. 2018-04-03 13:14:58 -04:00
John Chilton 083bdcbdd8 Rule-based Collection Builder
Vue-based component for defining collections by applying rules to a list of files or more general spreadsheet style information (e.g. sample sheets or tabular data from data sources containing URL or FTP file paths for files along with metadata). The widget is fairly complex but very broadly is broken into two panes - one to preview how rules are applied to build up tabular data defining collections (each row corresponding to a file with columns for metadata and such) and one that displays defined rules and allows for editing of these rules and creation of new ones.

The goal behind defining rules this way instead of allowing the user to interact with the spreadsheet display directly is to enable scaling up collection creation. If a user wishes to upload hundreds of datasets - interacting with a widget directly for each input doesn't scale well and would be error prone. If a user wishes to upload hundreds of thousands of datasets - even loading this information in the GUI may not scale (though I've been impressed with the performance so far of this approach) and so we can potentially just display a preview of some of the rows and process the final set of rules on the backend.

Since we can handle an arbitrary number of columns this way, we can define multiple list identifiers per file and so we can easily construct nested lists. Hence this allows creation of not just potentially larger collections but arbitrarily complex lists as well. Paired identifiers via indicator columns are also implemented.

In order to operate over lists of datasets directly - the multi-select history widget now has a new option "Build Collection from Rules" along side the other collection builders. This mode uses the well established dataset collection API to build collections from HDAs.

In order to operate on lists of FTP files or URLs - the upload widget has a new tab "Rule-based" tab that allows users to paste in tabular data or select a history dataset and then send this tabular data to the new builder widget. This will be extended to include FTP directories for instance over time. This mode uses the new data fetch API to build collections and handle uploads of arbitrary collections of files.

The preview of the tabular data generated via rules is done via [Handsontable](https://handsontable.com/) - a JavaScript spreadsheet widget with a VueJS [wrapper component](https://github.com/handsontable/vue-handsontable-official). This turns out to be a fairly nice application for reactive components - as rules are added or modified the spreadsheet just naturally updates. In my hands the widget scales very nicely - I've uploaded files with tens of thousands of rows and rules modifying the data and changing the spreadsheet do not seem to cause siignificant delays in the web browser.
2018-03-29 11:07:06 -04:00
Martin Cech 8f0a2d2360 Merge pull request #5706 from jmchilton/selenium_fixes_36
Fix setup code in library test landing page to rerun on test retry.
2018-03-23 16:47:47 -04:00
John Chilton 8ace245720 Ignore seemingly harmless error when tearing down Selenium tests.
Causes otherwise passing tests to fail for not particular reason. Cannot find a Selenium issue for this but it has been reported on in their IRC - seems like just a very rare, transient issue.

xref https://jenkins.galaxyproject.org/job/docker-selenium/1830/testReport/junit/selenium_tests.test_saved_histories/SavedHistoriesTestCase/test_delete_and_undelete_history/
2018-03-23 10:21:57 -04:00
John Chilton d3d8fc29f1 Another attempt to skip flakey Selenium tests.
- Flakey was throwing nose's SkipTest but the Selenium framework was catching unittest's, fix that to use unittest version in both places.
- There problematic test is still throwing exceptions in the tearDown which is still causing build failures, skip the whole test.
2018-03-21 15:37:46 -04:00
John Chilton 05176dabbe Restructure and mark as flakey problematic library collection Selenium test.
Needs to be restructured for flakey to work, several other PRs attempted to address or clarify this but have failed.
2018-03-16 16:18:57 -04:00
John Chilton b821b6a683 Merge pull request #5711 from nsoranzo/flakey_after_selenium_tests
Properly order @flakey and @selenium_test decorators
2018-03-16 11:26:31 -04:00