Commit Graph
1153 Commits
Author SHA1 Message Date
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 f33bb43025 Merged in jmchilton/galaxy-central-fork-1 (pull request #389)
Small Column Parameter Enhancements
2014-05-15 13:49:44 -05:00
John Chilton 8e6bcf72c7 Merged in jmchilton/galaxy-central-fork-1 (pull request #387)
Recursive Tool Parameter Dictification
2014-05-15 13:43:43 -05:00
John Chilton d7b4b36756 Change paired collections terminology from left/right to forward/reverse.
If you have paired datasets in your database they will no longer work - send me an e-mail and I can give you an SQL update statement.
2014-05-15 13:01:36 -05:00
Greg Von Kuster 5b3e02d5c3 Phase 2 of the tool dependency package installation framework rewrite: 1) rename the RecipeManager class to be the StepManager class and add a new TagManager class, both of which are contained in the recipe_manager.py module. 2) Add appropriate new classes for handling recipe tag sets to a new tag_handler.py module. Add a new InstallManager class with functions for installing tool dependencies. Eliminate the use of fabric_util.py and install_util.py. 2014-05-14 14:55:31 -04:00
John Chilton 486dc41639 Bugfix for updating history dataset collection name.
Thanks to Bjoern for the bug report.

This attribute had been DatasetCollection in earlier versions of this code and the update code was only partially cut-over to use the new location for name (on HistoryDatasetCollectionAssociation).
2014-05-14 05:26:21 -05:00
John Chilton c79e4dcc40 Fix duplicated names in on_text when using multiple data inputs.
Unit tests verifing the fixed, correct behavior included. Bug introduced in e8c84dd715782e7c1d709d8068e6033b835f7f39 as an unintended consequence of duplicating the first dataset in the dictionary of input datasets generated by the tool action code.

Fixes https://trello.com/c/LCEKxImR.
2014-05-13 17:47:57 -05:00
John Chilton 22bddab240 Implement serializable class that can describe full dependency context for remote dependency resolution.
Previously LWR jut serialized tool requirements, by transitioning to this class LWR should be able to resolve tool shed installed packages as well - requiring the additional repository and tool dependency context.
2014-05-13 00:13:02 -05:00
Dave Bouvier 8dbc18a56f Fix for retrieving job streams with the twill interactor. 2014-05-12 16:27:49 -04:00
John Chilton 40f19d2a0f Allow c to appear in default value for Column parameters, allow specification with value attribute.
Ideas purposed by Peter Cock here - http://dev.list.galaxyproject.org/Default-value-for-data-column-not-working-tp4139574p4664492.html.
2014-05-12 12:01:14 -05:00
John Chilton dc5563371a Unit test case for tool column parameters.
Ever more duplication in these parameters tests, I need to find some time to refactor...
2014-05-12 12:01:14 -05:00
John Chilton fcae5f51ff Add API functional test for workflow extraction of collection reductions. 2014-05-11 13:56:49 -05:00
John Chilton 3109f70c3a Allow more typical expanded HDCA value with src when mapping over collection via API.
Flat ID still used by GUI - but when coming through API this is probably the better choice.
2014-05-11 13:56:49 -05:00
Dave Bouvier 430f568989 Fix functional test dataset error reporting. 2014-05-09 12:35:23 -04:00
Dave Bouvier f4386d60ab Clean up twilltestcase.py, fix functional tests for tools with spaces in the tool ID. 2014-05-09 09:57:26 -04:00
John Chilton 9256b438de Improvements to to_dict for Conditional tool parameters.
Expand out nested test_param parameter and cases.
2014-05-08 17:55:00 -05:00
John Chilton b36fdcb022 Improvements to to_dict for Repeat tool parameters.
Expand out nested parameters and more information about the repeat itself.
2014-05-08 17:55:00 -05:00
John Chilton 6d0de9ba11 Bugfix: (For bf60fa7) Only initial mapping steps in map reduce workflows were being connected correctly.
With expanded test case that checks such a connection. This takes care of of subsequent connections by iteratively updating hid_to_output_pair correctly (... I think, test works with at least two).
2014-05-08 16:12:07 -05:00
John Chilton b684f4a13e Add simple collection mapping workflow extraction functional test. 2014-05-08 16:12:07 -05:00
John Chilton aafe817cbf Refactor API assertions for reuse outside explicit TestCase classes. 2014-05-08 16:12:07 -05:00
John Chilton 203dfe9903 Reduce polling frequency of API tests, seems to help prevent sqlite locks. 2014-05-08 16:12:07 -05:00
John Chilton 2f8970a6a7 Bugfix: Rework collection matching logic so it properly matches combined collection/subcollection mapping.
With functional test to verify it works end-to-end with tool execution and unit tests to verify different kinds of collection combinations.
2014-05-07 15:39:03 -05:00
John Chilton 3688e02475 Add framework test tool that has both data and data_collection param - with test case.
Tool test is mildly useful to verify this works for single execution - but more useful as basis for future changesets testing mixed collection and subcollection mapping tool executions.
2014-05-07 15:39:03 -05:00
John Chilton 6a4c14e6d2 Simpler, more powerful subcollection mapping.
Collections can be mapped over 'data' parameters and sufficiently nested collections can be mapped over 'data_collection' parameters (for instance a list of 5 pairs can be supplied to a tool taking in a pair and 5 jobs will be executed). I (perhaps poorly) term these concepts collection mapping and subcollection mapping.

Prior to this changeset - the API for doing collection 'mapping' and 'subcollection mapping' was somewhat more divergent and the tool execution code explicitly forbid doing both kinds of mappings in the same tool execution even if the effective collections could be matched (e.g. it could not map a 'data' parameter over a list of 5 datasets and a pair parameter a list of 5 pairs in the same execution).

This changeset should remedy this - as long as the effective collection mappings can match up such jobs should be possible. The workflow editor (and I think runner) already thought this was possible, so this changeset reduces the tool-workflow impedance mismatch - an existing problem exacerbated by recent dataset collections introduction.

This all needs much more testing - test workflows execute this way, functional test of a tool execution that combines collection mapping and subcollection mapping, etc....
2014-05-07 11:29:51 -05:00
John Chilton 1359c4a780 Improve API test skipping when required tools are absent.
Replace ad-hoc tools API test method for skipping tests with a more general purpose decorator. Use new decorator to specify required tools for workflow tests.
2014-05-07 00:24:00 -05:00
John Chilton 2df5cfe008 Bugfix: Track collection_type when extracting collection inputs from histories.
Add functional test to verify the correctness of this tracking.

TODO: refactor __skip_unless_tool from tools test so this new workflow test can be skipped if not run with -with_framework_test_tools.
2014-05-06 16:08:30 -05:00
John Chilton 8227e4754c Bugfix: galaxy.workflow.extract expects hids - API was consuming encoded ids.
API now properly expects hids. That was unfortunate - need to figure out why the existing functional test did not break because of this and improve it.
2014-05-06 16:08:30 -05:00
John Chilton e0ee48c7bd Fix bug in test/api/test_tools.py. 2014-05-06 13:52:49 -05:00
John Chilton 3cdf45e847 Move dataset colleciton test populator. 2014-05-06 13:52:49 -05:00
John Chilton deda734e0a Fix location of test_dataset_collections.py.
Didn't rebase properly.
2014-05-06 13:52:49 -05:00
John Chilton 60824d91b3 More refactoring away from mixins and toward 'data populators' in API tests. 2014-05-06 13:52:49 -05:00
John Chilton a8d5d60da6 Rework encode_all_ids in BaseController so it can be used outside of controllers.
Moved into SecurityHelper. Also fixed up style, elminated unconditional exception handling, and added unit tests.
2014-05-06 08:54:31 -05:00
John Chilton 704446ea24 Dataset collections - tools API returns implicitly created collections.
Use improvements to write better functional tests, ensure element identifiers preserved.
2014-05-06 08:54:31 -05:00
John Chilton fa7d906333 Dataset collections - update workflow editor for collection inputs, mapping, and reduction.
This commit enables the workflow editor to deal with input collection data parameter types and inputs (easy) and much more complicatedly reason about mappings and reductions over inputs and collection inputs. Not sure I can really describe the new interface in a changeset - essentially it is more complicated to determine if a input can be connected to by an output - and that connection affects what are valid other inputs and what the outputs are.
2014-05-06 08:54:31 -05:00
John Chilton 7d14e29091 Dataset collections - allow mapping collection params over subcollections. 2014-05-06 08:54:30 -05:00
John Chilton 5410d476e8 Dataset collections - "reduce" with existing tools.
Allow users to select dataset collections in place of individual datasets for data tool parameters with multiple="true" enabled (if all elements of collection would be valid as input to this parameter).

Restrict collection reductions to flat collections. If a user wanted to reduce a nested collection they probably want to map of the subcollections reducing each and building a collection of the reductions. TODO: The sentence is probably unintelligiable, need to provide a concrete example.

A functional test demonstrating these reductions in included.
2014-05-06 08:54:30 -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 8168334297 Dataset collections - "map" with existing tools (backend).
Allow replacing data parameter inputs with collections - this will cause the tool to produce multiple jobs for the submission - one for each combination of input parameters after being matched up (linked). In addition to various unit tests, functional tests demonstrate the API usage in `test/functional/api/test_tools.py`.
2014-05-06 08:54:30 -05:00
John Chilton 74c645ba8c Allow running tools on multiple datasets simulatenously (UI).
Update tool form. This commit needs work to ensure this only affects the tool_form.mako.
2014-05-06 08:54:30 -05:00
John Chilton ace6b8e11f Improvements to test_execution.py 2014-05-06 08:54:30 -05:00
John Chilton d63f9c9149 Allow running tools on multiple datasets simulatenously (backend+API).
Each data tool parameter can be specified via a similar named parameter but with the suffix |__multirun__. This second parameter variant should be a list of datasets - one job will be created for each such dataset. In addition to various unit tests, various functional tests demonstrates this functionality in `test/functional/api/test_tools.py`.
2014-05-06 08:54:30 -05:00
John Chilton f42d97fef3 Dataset collections - tool parameters - allow tool tests.
With example tool tests demonstrating some basic features available to cheetah for data_collection parameters.
2014-05-06 08:54:30 -05:00
John Chilton 3dc4b16c00 Dataset collections - infrastructure glue.
Add an API and service layer for dataset collections.
2014-05-06 08:54:30 -05:00
John Chilton f72933ac84 Dataset collections - models - basics.
Mapping, model definition, database migration, and model unit tests to support database collections.
2014-05-06 08:54:30 -05:00
John Chilton ddcad1582c Merged in jmchilton/galaxy-central-fork-1 (pull request #356)
Enhancements for Runtime Discovered (Collected Primary) Datasets
2014-05-06 08:13:29 -05:00
John Chilton cfaaad06db Allow embedding setting of metadata as part of local jobs.
(Like it works for all other runners except the LWR). This is essentially scaffolding toward elimination of extra metadata step in local runner.

Got Dan's blessing to kill this off a while ago but I still don't quite understand why it is separated out - so doing this in two parts. This changeset changes nothing by default but adds an option to local runner destinations (embed_metadata_in_job) to allow them operate in the new fashion (embed the metadata setting step in the job itself). At some later point this option should just be removed and all local jobs should operate this way. Use this new option to speed up the local job runner or to test out how this runner will work in the future.
2014-05-05 12:35:09 -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 32b2881e9d Truncate big job metric values.
Wasn't needed for sqlite based testing - but based on Nicola's experience must be for some other database backend.

https://bitbucket.org/galaxy/galaxy-central/commits/a45f6e57f3d5a4075430a6d460a6cade#comment-924461
2014-05-05 09:11:05 -05:00
Dave Bouvier 424efdcf9a Moved API tests to live under test/ rather than test/functional/. Removed test for DNAse flanked genes. Added test for UCSC table browser. 2014-04-30 15:35:57 -04:00
Dave Bouvier 2835b84a4c Fix admin and library feature functional tests. Improve handling of checkbox parameters and multi-select inputs in functional tests. 2014-04-29 15:39:43 -04:00