Skip to content

Selenium Testing of Jupyter Notebooks#4694

Closed
jmchilton wants to merge 14 commits intogalaxyproject:devfrom
jmchilton:selenium_improvements
Closed

Selenium Testing of Jupyter Notebooks#4694
jmchilton wants to merge 14 commits intogalaxyproject:devfrom
jmchilton:selenium_improvements

Conversation

@jmchilton
Copy link
Copy Markdown
Member

This builds on bug fixes from #4687.

This adds a test case for testing Jupyter notebook execution. This test will "skip" on Jenkins because it isn't configured, but with the enhancements in this branch can be targeted against usegalaxy.org using the command:

GALAXY_TEST_TIMEOUT_MULTIPLIER=5 GALAXY_TEST_SELENIUM_USER_EMAIL="jmchilton@gmail.com" GALAXY_TEST_SELENIUM_USER_PASSWORD="notmyrealpassword" GALAXY_TEST_EXTERNAL=https://usegalaxy.org/ nosetests test/selenium_tests/test_jupyter.py

To make this possible cleanly, I've implemented a bunch of generic infrastructure bits for Selenium testing in other commits. These include:

  • Implement a @managed_history decorator for Selenium tests that starts the test by creating a history with a name corresponding to the time and name of that test and deletes the history at the end of the test. This won't stop a proliferation of useless histories on main corresponding to the test but it will at least make sure these tests are cleaned up and organized by name.
  • Implement the ability to login with a username and password for Selenium tests that are marked as ensure_registered=True. Previously that class attribute would force a new registration for each test case - not it just forces a login one way or the other. Either a new registration or a using the supplies credentials as demonstrated above.
  • Implement a new scalable and configurable schema waiting and sleeping during Galaxy tests. The 60 second default previously was good for Jenkins where there is no contention but we want to give everything a long time to stabilize before failing a test. However it was terrible for local testing where bad tests would take a very long time to fail (it was too long) and is was terrible for usegalaxy.org where 60 seconds is not long enough to wait on uploads to complete or the GIE to start (it was too short). The new variant of waiting is scaled by operation time and a via a constant that is configurable (the above multiplier of 5 might be appropriate for usegalaxy.org).
  • There are some other small clean up things and new documentation added in this branch that can be separated out and PR'd separately ahead of this if requested.

@jmchilton
Copy link
Copy Markdown
Member Author

Pulled this out of WIP and added a couple more bug fixes from Selenium runs over the past 12 hours. I may pull the fixes out into their own PR.

@natefoo natefoo mentioned this pull request Sep 27, 2017
21 tasks
@jmchilton jmchilton force-pushed the selenium_improvements branch from 5538d85 to 2b48fc4 Compare September 27, 2017 19:34
@jmchilton jmchilton force-pushed the selenium_improvements branch from 2b48fc4 to 9433945 Compare October 1, 2017 15:42
@jmchilton jmchilton force-pushed the selenium_improvements branch from 9433945 to b560130 Compare October 2, 2017 13:52
@jmchilton jmchilton mentioned this pull request Oct 2, 2017
@dannon
Copy link
Copy Markdown
Member

dannon commented Oct 3, 2017

Included in #4732, which was merged. Closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants