Commit Graph
187 Commits
Author SHA1 Message Date
Dannon Baker ae8b8d9fdf Merge remote-tracking branch 'upstream/dev' into bs4 2018-04-09 09:59:46 -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
Dannon Baker 7c8b243940 Merge pull request #5710 from jmchilton/selenium_fixes_39
Make problematic test test_library_to_collections more robust.
2018-03-16 11:08:40 -04:00
Nicola Soranzo 680cfec4c9 Properly order @flakey and @selenium_test decorators 2018-03-16 13:16:01 +00:00
Dannon Baker 6716848a36 Merge pull request #5708 from jmchilton/selenium_fixes_38
Don't retry skipped tests.
2018-03-16 08:53:52 -04:00
Dannon Baker d783ec5daf Merge pull request #5705 from jmchilton/more_robust_collection_builder_test
Make collection builder tests more robust against potential history panel glitches.
2018-03-16 08:39:25 -04:00
John Chilton 2001606d33 Make problematic test test_library_to_collections more robust potentially.
Now that #5701 has been merged we have some more clues on the problem with this test. It is dying on the second upload being changed here. I suspect what is happening is that we are waiting on a history to become okay but we make that check before the first upload has even finished - so there is some chance the history is okay because it is empty - so we are reopening the home page in the middle of the first upload and this is causing something odd to happen - something is popping up an empty alert. I'm not sure what is causing that alert but it isn't what we are testing with this test so it is best to really just wait on the uploads - as we do in other tests (see test_uploads.py for instance).

history_panel_wait_for_hid_ok is a stronger assertion and is generally more robust and has better error reporting anyway so this should be a stability win all around.
2018-03-16 08:36:17 -04:00
John Chilton b5a8260765 Print a statement when retrying Selenium test functions.
Pointed out by @nsoranzo (https://github.com/galaxyproject/galaxy/pull/5708#discussion_r175054796) that there isn't mmuch of an indication this is occurring otherwise.
2018-03-16 07:46:59 -04:00
John Chilton d85a53cf13 Don't retry skipped tests.
Wasting time on these when running Selenium tests on Jenkins.
2018-03-15 16:22:20 -04:00
John Chilton d39b4beef2 Fix setup code in library test landing page to rerun on test retry. 2018-03-15 16:01:56 -04:00
John Chilton dd20f640be Don't let Selenium driver failures during debugging mask underlying errors.
https://jenkins.galaxyproject.org/job/docker-selenium/1665/testReport/selenium_tests.test_library_to_collections/LibraryToCollectionsTestCase/test_list_creation/
2018-03-15 12:10:26 -04:00
John Chilton f93044d583 Make collection builder tests more robust against potential history panel glitches. 2018-03-15 11:55:15 -04:00
Björn Grüning b6e7a250b2 Merge pull request #5559 from jmchilton/jupyter_testing_2
Progress on Jupyter Notebook Selenium tests
2018-02-21 16:21:33 +01:00
John Chilton fb0fc49560 Progress on Jupyter Notebook Selenium tests
Break big test into two - one of which will occasionally work against usegalaxy.org now.
2018-02-19 12:02:09 -05:00
John Chilton 283ab0459f Improve performance bugs and misleading summary info in history list.
Prefetch shared user information as counts instead of objects and do so in initial query to eliminate an extra 15 SQL queries per page and load less data related to sharing.

Replace columns that would cause HDA information to be joined into the query (history size and HDA state counts) with a spinner that will be fetched in subsequent queries on the client end. There can hundreds of thousands of datasets per history - this information shouldn't be summarized to get the initial page to render - it can be fetched one history at a time once the page is rendered.

This commit also adds a new column "Items" that corresponds to the next HID - and that I think is a good summary of the "history size" before the dataset state information is loaded and even gives additional information because that count includes collections. This also renders state information for deleted and hidden datasets that was previously missing and could cause confusion. That said I don't like the dataset summaries - I'd rather just have the item count and then job state summaries.
2018-02-14 13:21:10 -05:00
Evgeny Anatskiy 90d59ac923 fix webhooks tests 2018-02-01 12:18:02 -05:00
John Chilton e4d0788a28 Improvements to library testing.
- Add tests for creating a collection from a library.
- Add more class names to library GUI to improve selectors for tests.
- Automatically select whichever radio box makes sense in library collection builder dialog based on whether there is a selection or not.
2017-12-18 15:47:17 -05:00
John Chilton 6fd6595238 Another try to fix flakey tool form Selenium test. 2017-12-14 08:21:46 -05:00
Nicola Soranzo 48aca7dce8 Update to flake8-import-order 0.16 2017-12-01 11:09:57 +00:00
John Chilton 345ee9aa9d Make new Selenium pagination test as flakey - doesn't work consistently on Jenkins. 2017-11-30 16:01:27 -05:00
John Chilton 37705885db Warn the user if not all collection elements are rendered.
With test case.
2017-11-30 16:01:27 -05:00
John Chilton 485f64ee38 Selenium testing for pagination of the history panel. 2017-11-30 16:01:27 -05:00
Dannon Baker 1385cf4f83 Merge remote-tracking branch 'jmchilton/citations' into dev 2017-11-30 15:09:56 -05:00
John Chilton c6bc1538be Mark one of the new history collection tests as @flakey.
Reason noted in PR.
2017-11-30 10:32:39 -05:00
John Chilton d0e9a80c58 More GUI tests for collections. 2017-11-30 10:32:37 -05:00
John Chilton 8fa5496ba5 Restructure collection state GUI tests to separate flakey tests of running state out.
Paste just sometimes randomly hangs when it is not supposed to.
2017-11-30 10:02:03 -05:00
John Chilton ca09e803ae Dataset collection state UX test case. 2017-11-30 10:02:03 -05:00
John Chilton d8fe56c670 Modify citations test to clarify some bugs. 2017-11-27 12:42:31 -05:00
John Chilton bb7d06f59e Pre-fetch citations in new test so available quickly at render time. 2017-11-25 00:10:28 -05:00
John Chilton 05ddc50c1a Make test more robust - citations take a while to fetch from doi. 2017-11-24 18:11:02 -05:00
John Chilton ca2eb5b2a5 Simple tool test for citations. 2017-11-24 15:25:19 -05:00
guerler 343c39f316 Use better identifiers in test 2017-11-21 11:33:22 -05:00
John Chilton da2e38c723 Allow transitioning to workflow editor before clicking inputs menu. 2017-11-21 11:10:09 -05:00
guerler 3b8d5981c7 Fix selector
Fix

Fix
2017-11-20 12:32:24 -05:00
guerler 33eb15b63c Fix import order and style 2017-11-18 15:44:16 -05:00
guerler 6e2285d3f2 Merge branch 'dev' into remove_unused_workflow_endpoint 2017-11-16 11:24:41 -05:00
guerler ef0e253058 Fix selenium test attempt
Fix
2017-11-16 11:06:53 -05:00
John Chilton 9273d7a1c7 Add screenshots for TDT Selenium tests. 2017-11-14 21:54:58 -05:00
John Chilton cecef90915 Merge remote-tracking branch 'jmchilton/dev' into tdt_tests 2017-11-14 21:49:15 -05:00
John Chilton c52ebfca26 Improvements for tour generator Selenium tests.
- Replace test using Cut1 with two tests each using framework test tools loaded with Selenium tests by default.
- Create a symbolic link so that tour generator is configured with default test webhooks.
- Establish and use components and navigates_galaxy.py abstractions for tour generation and navigation.
- In one of the tool tests actually walk the tour (previously we only verified the initial tour popover).
2017-11-14 21:41:09 -05:00