Commit Graph
18 Commits
Author SHA1 Message Date
John Chilton 6dd7f5a0fb Unit test to verify tool panel handles multiple successive TS install...
In particular that the integrated panel reflects all the installed tools but that they are groupped correctly in ToolBox._tool_panel.
2015-01-01 10:02:23 -05:00
John Chilton 7e45ca2a72 Allow multiple tools with the same id in ToolBox.
How to use:

 1.) Place multiple tools with different IDs in your tool conf.
 2.) ... ummm ... no step 2 - just use the tools.

Implementation:

The Tool Shed allows tool lineages by assigning each tool version a GUID and tracking versions in a database. This
implementation works by simply allowing the ToolBox to contain multiple tools with the same ID and orders them by the version specified by the tool author.

To track enable this a second tool lineage has been introduced that just uses tool versions instead of a database (non-toolshed installed tools are not longer placed into the Tool Shed install database). The ToolBox has been updated to allow multiple versions per tool id (defaulting to the 'latest' version for all operations which do not specify a version). Both jobs and workflow steps would track tool versions but did not use that version when fetching tools from the Toolbox - these components have been updated to try to use the tool version.

Unit tests working through most of the ToolBox and tool panel have been added, as well as functional tests exercising the tools API and to ensure workflows now at least attempt to respect tool versions (still kind of silently switches versions in some cases). Manual tests against the new tool form seem to demonstrate the tool switching and tool re-running work with only minor changes to the tools API and the job handler.
2014-12-31 18:21:10 -05:00
John Chilton 3b3ef1f85f Simplifications for ToolPanelManager.get_shed_tool_conf_dict.
None of the components using this method are using the index any more - so eliminate it. Also introduce a new ToolBox method to hide the details of ToolBox.shed_tool_confs from this method.
2014-12-29 09:11:54 -05:00
John Chilton d2081e1fea Start work on unit tests for galaxy.tools.ToolBox. 2014-12-23 13:52:39 -05:00
John Chilton ec24396140 Refactoring: Start abstracting XML processing out of Tool and param classes.
Long term this could allow Galaxy to support - multiple tooling formats (Galaxy-like YAML, CWL http://bit.ly/cwltooldesc, etc...). But I think it is also important from a purely design perspective - this is a core logic class integrating different components - they should not also be doing XML parsing.

To verify the interface for parsing tools is expressive enough to allow multiple useful implementations, I built a test YAML tool description that implements many of the same features as Galaxy but smooths out rough edges (uses exit codes for job failure by default for instance). Loading these tools is disabled by default and it is not documented how to enable them because they are not intended to be part of Galaxy's public API.
2014-12-11 00:26:13 -05:00
John Chilton c87002961f Fix unit tests broken with 9f63d96. 2014-09-03 08:43:25 -04:00
Nate Coraor dfc08662cc Remove hardcoded path to builds.txt from util, fix unit test that relies on this. 2014-07-27 02:59:24 -04:00
John Chilton 7c0026a6df Fix failing unit tests for 60d8de4. 2014-06-13 00:58:23 -05:00
Daniel Blankenberg 75aa0a2a9b First pass at allowing dbkeys / genome builds to be loaded from Tool Data Tables. 2014-05-19 15:08:26 -04:00
John Chilton cb87cf4c27 Merged in jmchilton/galaxy-central-fork-1 (pull request #384)
Local Job Runner Enhancements
2014-05-18 21:12:36 -05:00
John Chilton cf206e1692 Dataset collections - implicit "map" creates collections.
When running normal tools with normal data inputs across dataset collections in parallel - a collection will be created for each output with a "structure" matching that of the input (for instance pairs will create pairs, lists will create lists with the same identifiers, etc...). A previous changeset added the ability to run the tool in parallel - this changeset extends that functionality to create analogous collections from these parallel runs.

For example, if one filters a pair of FASTQ files a pair is created out of the result. Likewise, if one filters a list of FASTQ files - a list collection with same cardinality is built from the results.

There is a lot left TODO here - for one a lot of this logic should be moved into the dataset_collection module. The matching needs to be exact right now - not a problem for pairs (every 'element' has name 'left' or 'right') but for lists with element names - these have to match exactly - but a 'list' like samp1_l, samp2_l, samp3_l should be able to match against samp1_r, samp2_r, samp3_r and create a new list samp1, samp2, and samp3. Even if there is no matching prefixes a new 'unlabeled' list should be able to be created.
2014-05-06 08:54:30 -05:00
John Chilton acb9c77714 Unit tests for local job runner.
Test running, capturing standard output and exit code, killing job, setting metadata, adding Galaxy to jobs PYTHONPATH, GALAXY_SLOTS logic (default and overidding).
2014-05-05 12:35:09 -05:00
John Chilton be13bd26a7 Test cases for filtering tool parameters on other parameter values.
Includes test case that is broken without JJ's contributions in pull request #343.
2014-02-28 14:49:46 -06:00
John Chilton 2268302db9 Create unit test for some simple DefaultToolAction functionality.
Want to refactor some stuff around in DefaultToolAction so can be reused when dealing with dataset collections downstream in https://github.com/jmchilton/galaxy-central/tree/collections_1 - so creating unit tests to ensure functionality is not changing.

This changeset also reworks test_execution.py moving more stuff to test/unit/tools_support.py to share between test files.
2014-01-23 22:11:07 -06:00
John Chilton 7ad8845bb0 Refactor logic related to creating tools for unit tests.
So it can be reused by tool actions unit test.
2014-01-23 22:11:06 -06:00
John Chilton baac81143e Add tool execution unit test for rerun_remapping. 2014-01-14 14:43:39 -06:00
John Chilton 7bb726c80b Add data parameter tests to tool execution unit tests. 2014-01-14 08:00:57 -06:00
John Chilton fbcf068e81 Initial work on tool execution unit tests.
Going to be doing some more work on tool state stuff so it will be good to have a way to test that. This also brings in test/unit/tools_support.py from Pull Request #287 (would be overkill for just these tests, but it is useful for future tests coming down the pipe.)
2014-01-13 08:58:22 -06:00