Commit Graph
163 Commits
Author SHA1 Message Date
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
Nicola Soranzo 2cd95c48f6 Fix import order everywhere
- Add flake8-import-order to flake8 Pipfile and remove py27-lint-imports
  and py27-lint-imports-include-list tox envs
- Fix most E201 and E202 errors reported by flake8-import-order v0.15,
  but pin flake8-import-order to v0.14.3 until
  https://github.com/PyCQA/flake8-import-order/issues/123
  is fixed

This let us drop 2 jobs on Travis per each job.
2017-11-14 19:42:39 +00:00
Martin Cech 7857b152cd Merge pull request #4972 from jmchilton/flakey
Add @flakey test annotation and "skip" them if the fail on Jenkins.
2017-11-10 12:18:38 -05:00
John Chilton 875fb3641f Add @flakey test annotation and "skip" them if the fail on Jenkins.
Use it to skip the Juypter test that keeps randomly failing builds if there are problems.
2017-11-09 16:27:38 -05:00
John Chilton 2f63d8bd70 Capture a bunch of labelled screenshots of Galaxy durings tests.
During pull requests reviews this allows easy visual inspection of various components to augment the automated testing.
2017-11-09 15:15:24 -05:00
John Chilton a7b32a772d Enable galaxy logging during Selenium tests.
- Use localStorage to enable the logs at the start of new connections during tests.
- Add new flatten console logging options in the client to hack around problem recovering multiple argument style logging the client uses with only getting back first argument when using Selenium API (at least with Chrome).
- Break out the browser log into a sort of default and verbose mode (only the latter includes DEBUG and INFO messages).
- Use json.dump with the indent call to get more visually parsable logging messages in the Selenium test failure dump.
2017-11-05 14:37:37 -05:00
John Chilton 3a1ca26339 Fix published histories grid test. 2017-11-03 19:33:20 -04:00
Evgeny Anatskiy f419c85955 add test for TDT 2017-11-01 15:21:25 +01:00
Evgeny Anatskiy 323e1ad64e Merge branch 'dev' into tdt_tests
# Conflicts:
#	client/galaxy/scripts/mvc/tool/tool-form-base.js
#	static/maps/mvc/tool/tool-form-base.js.map
#	static/scripts/bundled/analysis.bundled.js
#	static/scripts/bundled/analysis.bundled.js.map
#	static/scripts/bundled/libs.bundled.js.map
#	static/scripts/mvc/tool/tool-form-base.js
2017-11-01 15:05:22 +01:00
Evgeny Anatskiy 9d646c605c improve the test 2017-11-01 14:51:35 +01:00
Evgeny Anatskiy b097339164 test successful tour generation 2017-10-17 19:37:20 +02:00
Evgeny Anatskiy 6c32edebc1 start writing tests for TDT 2017-10-17 19:23:36 +02:00
John Chilton cc5f44bccc Comment out test that doesn't work on Jenkins.
I don't know why it doesn't work - I'll revisit later but Jenkins is currently broken.
2017-10-04 14:02:12 -04:00
John Chilton 225ad7fb45 Continue push toward smarter component based Selenium testing.
This continues a thread started in 0650978a91 and #4732 of switching to smarter selectors from a more structured YAML description of the Galaxy DOM. This continues that by:

- Eliminating any use of the old navigation YAML file (navigation-data.yml).
- Replace href selectors with other things since they break when testing Galaxy with a proxy-prefix.
- Extending the raw selectors to allow concept of nesting selectors.
- Building even smarter "components" that wrap these raw selectors generated from the YAML directly in a way that allows them to utilize the actual Selenium session and helper class.

So the old ``self.navigation_data`` is gone, ``self.navigation`` still yields the raw selectors, and ``self.components`` yields the smarter variant. Hopefully all will agree the code that uses ``self.components`` is more compact and readable.

The following a very basic example of this:

```diff
     def click_masthead_user(self):
-        self.wait_for_and_click(self.navigation.masthead.selectors.user)
+        self.components.masthead.user.wait_for_and_click()

```

Here is an example of combining it with the new child selector syntax:

```diff
     def assert_item_dbkey_displayed_as(self, hid, dbkey):
-        item_body_selector = self.history_panel_item_body_selector(hid=hid, wait=True)
-        dbkey_selector = item_body_selector + ' ' + self.test_data["historyPanel"]["selectors"]["hda"]["dbkey"]
-        dbkey_element = self.wait_for_selector_visible(dbkey_selector)
-        assert dbkey in dbkey_element.text
+        item_body = self.history_panel_item_component(hid=hid)
+        dbkey_text = item_body.dbkey.wait_for_text()
+        assert dbkey in dbkey_text

```
2017-10-04 12:53:34 -04:00
John Chilton 3c64167788 Initial work on selenium testing for libraries.
- Test importing datasets from histories.
- Test basic importing of a dataset from a path.
- Test creating a folder.
- Test create library, renaming a library, filtering libraries by name, and sorting of libraries.
- Test various buttons (e.g. details, help).
2017-10-03 11:59:39 -04:00
John Chilton 0650978a91 Switch to a new more structured YAML format for navigation data.
Break everything into components.
2017-10-02 11:54:59 -04:00
John Chilton 2d521ff927 Capture screenshots and such for setUp problems in Selenium tests as well. 2017-10-02 09:50:37 -04:00
John Chilton bff364753a Add Selenium test case for testing bits of navigates_galaxy.py. 2017-10-02 09:50:37 -04:00
John Chilton cc3c3a9b92 Implement outline of Jupyter testing. 2017-10-02 09:50:37 -04:00
John Chilton 395eefcbb2 Selenium - implement managed_history decorator for tests.
Creates and deletes a history for tests - good for tests meant to aim at production servers that need to have useful metadata and need to be cleaned up.
2017-10-02 09:50:37 -04:00
John Chilton 14d4367cc4 Allow forcing a particular user for some Selenium tests. 2017-10-02 09:50:37 -04:00
John Chilton c9915fc7e6 Switch to configurable, scaling approach to Selenium timeouts.
Implement different "WAIT_TYPES" and try to sleep for different amounts of time based on what is being waited for.

Replace sleep statements in addition to Selenium wait on statements.
2017-10-02 09:50:37 -04:00
John Chilton afaea964cf Selenium - cleanup duplication of DEFAULT_PASSWORD variable. 2017-10-02 09:50:37 -04:00
John Chilton 28c8644f02 More history panel abstractions in NavigatesGalaxy. 2017-10-02 09:50:37 -04:00
John Chilton cce59aeb55 Remove deprecated method click_hda_title in navigates_galaxy. 2017-10-02 09:50:37 -04:00