IntegrationTestCases differ from functional tests in that they start up a Galaxy instance configured on a per test class basis - so this new class of "integration tests" can test configuration modalities of Galaxy that cannot be tested with traditional Galaxy functional tests.
We have a tool_shed directory in lib, so if we enter a test case from some path and test/tool_shed happens to be a valid python top-level module - it blocks out lib/tool_shed and Galaxy doesn't work properly in the test.
A similar problem was encountered with unit tests and fixed with https://github.com/galaxyproject/galaxy/commit/df442a06382f23bdf0401bdd632b9584d3431281 - but I have decided that directory name was a bit log and so this commit unifies the approach to unit and functional test names for tool shed tests.
This change creates a more complete regex for parsing dates used in filters. MySQL in particular errored when the UTC zone character 'Z' was appended to a valid iso 8601 date (because it's MySQL). The FilterParser.parse_date method now:
- strips both the separator 'T' and any ending 'Z'
- one space are allowed as the date/time separator
- milliseconds are permitted
- both time and time with milliseconds are optional
- any added timezone (besides the UTC Z) will cause an error
- feedback was made more clear
- tests were added (and should make the above more clear)
Comments inline - I don't know why but the retry would fix the transient problems acording to the Jenkins tests with the previous exception added to verify this would fix the problem.
Classes allow de-duplicating logic and state organization in a different way than methods. Use a common setup, run, tear down paradigm for these tests.
Instead of writing it below GALAXY_ROOT (which it shouldn't do at all) - add to the temp directory managed for the test so that special clean up logic isn't required for it. The global switch GALAXY_TEST_NO_CLEANUP can be used to recover the state of this file if needed now also.
- Sync up the logic for reading and setting GALAXY_TEST_HOST, GALAXY_TEST_PORT, TOOL_SHED_TEST_HOST, and TOOL_SHED_TEST_PORT.
- Setup one high level method for taking a Galaxy-style "app" and creating a webapp from a factory method and then launching a paste server for that entity respecting the above variables.