Commit Graph
228 Commits
Author SHA1 Message Date
carlfeberhard f724e84fda API, users: use default to assign username 2016-07-07 11:20:02 -04:00
carlfeberhard 54e07906f5 User API tests: add update test 2016-07-06 14:10:14 -04:00
carlfeberhard aa69199bd1 User API tests: add show 2016-07-06 13:33:28 -04:00
Nicola Soranzo 40f85f2913 Python3: add missing print_function imports 2016-06-27 12:41:40 -04:00
Nicola Soranzo cd13423953 Python3: small fixes to previous commits 2016-06-26 02:43:57 -04:00
Junzhou Wang 7d7396f18f Python3: test/api/ 2016-06-25 17:31:20 -04:00
John Chilton d8ca09bcbe Test and linting fixes for fewer_collection_opts branch. 2016-06-10 14:50:44 -04:00
John Chilton a2578eb31a Update unzip collection action to allow it to be mapped over. 2016-06-10 13:34:19 -04:00
John Chilton ddeff4ec0c New model tool that filters failed datasets out of a collection.
This differs from a traditional tool in that its inputs don't need to be in an 'ok' state and instead of creating new datasets and duplicating data on disk, new HDAs are created from the existing datasets.
2016-06-10 13:34:18 -04:00
John Chilton 6ddb2c2a6a Implement framework for model tools.
This special class of tools leverages the infrastructure for tool inputs, tool state tracking, tool module for workflows, tool API, etc... without actually producing command-line jobs. Instead these tools are provided the input model objects and are expected to produce output model objects directly. This provides an oppertunity to copy HDAs without copying the underlying datasets.

The first driving use case for these tools are also included - namely tools that allow zipping and unzipping paired collections. These tools can be mapped over lists (e.g. list:paired to (list, list) or the inverse) using much of the existing infrastructure for tools. Test cases included that validate these work with mapping operations and in workflows.

The most obvious advantage of these versus traditional tools that do the same thing is that the data isn't copied on disk - new HDAs are created directly from the source datasets.

Testing:

This PR includes various API test cases for functionality, these can be run with the following command:

```
./run_tests.sh -api test/api/test_tools.py:ToolsTestCase.test_unzip_collection
./run_tests.sh -api test/api/test_tools.py:ToolsTestCase.test_zip_inputs
./run_tests.sh -api test/api/test_tools.py:ToolsTestCase.test_zip_list_inputs
./run_tests.sh -api test/api/test_workflows.py:WorkflowsApiTestCase.test_workflow_run_zip_collections
```
2016-06-10 13:34:18 -04:00
Nicola Soranzo cc336f61c0 Make some files compatible with Python3
Also enlarge the set of files tested with flake8 under Python3
2016-06-03 19:24:46 +01:00
John Chilton 4765f5876e Enhancements to tool test output verification.
Refactor test verification into galaxy-lib-compat module.

- Refactor a bunch class methods in ``test.base.twilltestcase`` into module functions in ``galaxy.tools.verify``.
- Move ``test.base.test_data`` to ``galaxy.tools.verify.test_data``.
- Move ``test.base.asserts`` to ``galaxy.tools.verify.asserts``.

Remove duplication in execution of these methods between composite and normal test outputs. This also entailed reworking the parsing of the composite test outputs to bring them inline with normal outputs. In addition to simplify removing duplication, this means many more tests can be made over composite outputs - such as md5 checks and test assertions. I've added a new framework test tool to verify this.
2016-05-25 09:37:49 -04:00
Nicola Soranzo 6ba6f798ec Fix more E203 flake8 errors 2016-05-17 23:53:16 +01:00
John Chilton af7d7de596 More fixes from downstream projects.
- Fixes a bug in lib/galaxy/tools/linters/general.py found through galaxy-lib.
 - Brings in docstring and import order linting fixes from the gxformat2 project (https://github.com/jmchilton/gxformat2).
2016-05-02 22:44:23 -04:00
John Chilton c2b091d207 Tests demonstrating multi-data params in repeats are broken.
A test cases and a tool that can be tested directory.
2016-04-22 10:10:06 -04:00
John Chilton eb2005e7a2 Merge pull request #1764 from guerler/fix_check_and_update_000
Use visit inputs for check_and_update_param_values
2016-03-01 12:40:16 -05:00
Martin Cech e43c2ef5de Merge pull request #1808 from jmchilton/empty_dataset
Implement dataset empty input validator.
2016-02-29 15:38:49 -05:00
Marius van den Beek 1019f7b40f Merge pull request #1735 from jmchilton/more_wf_loading_dup
Refactor workflow loading.
2016-02-29 17:42:45 +01:00
John Chilton aeb008ca43 Implement dataset empty input validator. 2016-02-26 10:39:04 +00:00
guerler 0b5651a5ed Do not rely on __current_case__ 2016-02-24 21:26:30 -05:00
guerler d3b343acab Use visit_inputs for check_and_update_param_values 2016-02-24 21:26:30 -05:00
guerler 664ae0c8df Attempt to strip legacy collection handling, fixes 2016-02-18 17:41:41 -05:00
John Chilton 0dac0c2077 Refactor workflow loading.
Remove even more duplication between updating and creating workflows. A few new test cases to verify errors under certain conditions.
2016-02-15 21:37:54 +00:00
John Chilton 11654a0950 Merge release_16.01 into dev. 2016-01-26 16:43:22 +00:00
Martin Cech 35f90da20c Merge pull request #1542 from jmchilton/did_fix
[16.01] Attempt to fix #1531.
2016-01-26 16:24:42 -05:00
John Chilton 807586ace8 Merge release_16.01 into dev. 2016-01-26 09:06:52 +00:00
John Chilton 151c90183b Merge remote-tracking branch 'jmchilton/release_16.01' into dev_merge_1 2016-01-20 15:14:33 +00:00
John Chilton 3f51101527 Attempt to fix #1531.
I was unable to reproduce #1531 in testing, but if the problem is something to do with stale state the following sledge hammer should fix it.

Runt the new test case with:

./run_tests.sh -api test/api/test_workflows.py:WorkflowsApiTestCase.test_delete_intermediate_datasets_pja_1
2016-01-20 12:46:05 +00:00
John Chilton eca2c3bcee Failing test case to exhibit #1514. 2016-01-19 13:50:53 +00:00
Nicola Soranzo 487ece0f40 Fix all E731 "errors". 2016-01-14 01:19:01 +00:00
John Chilton 66c94125ee Copy workflow objects when importing them.
If not anywhere workflow.stored_workflow is checked will be broken.
2016-01-11 16:12:57 +00:00
John Chilton dff94d743f "Fix" collection outputs to hide the HDAs in the history.
Long term this is just not a solution, but it is the strategy we use for mapped over output HDAs also.

Rebased and fixed based on comments from @nsoranzo indicating the previous attempt did absolutely nothing to fix the problem.

xref https://github.com/galaxyproject/tools-iuc/pull/412/files

Conflicts:
	lib/galaxy/tools/actions/__init__.py
2016-01-08 17:04:51 +00:00
John Chilton b9faf84b24 Stub an API test for tours so I can refactor a little. 2016-01-05 00:18:22 +00:00
John Chilton 61f4c82642 Add test case for importing a workflow with missing tool. 2016-01-04 09:55:44 +00:00
John Chilton 355bb281e2 Finish swapping unencoded ids with order_index in workflows API.
Running a workflow or showing a workflow can both restore the previous behavior by passing legacy=True as an API parameter. By changing these two endpoints in tandem I believe backward compatiblity for most existing code should be maintained unless:

 - The external application saved these workflow IDs previously and re-runs workflows without refetching the workflow definition. I could imagine Refinery for instance might do this and will have to update indexed workflows or add legacy=True to workflow requests.
 - The external application contacted the database directly after using this API endpoint to fetch more information about the step (seems unlikely).

See conversation:
 - http://dev.list.galaxyproject.org/workflow-API-step-order-vs-step-id-in-bioblend-td4668367.html

Rebased with changes suggested by @nsoranzo.
2015-12-20 14:39:20 +00:00
John Chilton 157939aa8f Implement nested workflows.
Details:

 - Add a new workflow module describing subworkflows.
 - Add workflow list to editor side panel - with options to link in a subworkflow module or copy the target workflow into the workflow being editted node for node.
 - Update workflow, workflow step, and workflow invocation models to track subworkflow connections and execution.
 - Extend workflow outputs with concepts of labels (and UUIDs while I'm there) to match workflow inputs. This allow us to have something to label outputs with in the workflow editor and to reference in the format 2 workflow description language.
 - Extend workflow editor UI to allow labeling workflow outputs (and enforce that these are unique across a workflow).
 - Extend workflow invocation and progress tracking to allow invoking a subworkflow as part of another workflow invocation.
 - Extend workflow import and export code to allow a nested representation of workflows.
 - Update format 2 workflow description to allow testing nested workflows.

Most relevant new and modified test cases can be run using the following commands:

```
./run_tests.sh -api test/api/test_workflows.py:WorkflowsApiTestCase.test_run_subworkflow_simple
./run_tests.sh -api test/api/test_workflows_from_yaml.py:WorkflowsFromYamlApiTestCase.test_subworkflow_simple
./run_tests.sh -api test/api/test_workflows_from_yaml.py:WorkflowsFromYamlApiTestCase.test_outputs
nosetests test/unit/test_galaxy_mapping.py
nosetests test/unit/workflows/test_workflow_progress.py
```
2015-12-16 15:22:18 +00:00
John Chilton 45962f3234 Input parameter workflow module (experimental).
- Implement a input parameter module that mirrors data and collection input modules but has a type that can currently be one of text, integer, float, color, and boolean.
 - Allow connections between these and tool step inputs.
 - Extend model to support this.
 - Add new input types for format 2 workflow definitions for various types that all map to this kind of step. Typed inputs such as this match well with CWL workflow inputs.

Someday I imagine these will be superior to just marking a tool input "Specify at Runtime" for all the same reasons input steps are superior to leaving inputs unattached.
2015-12-16 15:22:18 +00:00
John Chilton 886f6d2d70 Improved validation of tools during workflow execution.
Do a more complete validation of everything after workflow parameters have been replaced and inputs connected up.

Attempt 2 at the idea in https://github.com/galaxyproject/galaxy/pull/1284.
2015-12-14 15:29:35 +00:00
Nicola Soranzo bce8140bd9 Merge pull request #1285 from jmchilton/test_improvemnts_1
Small API Test Improvements
2015-12-10 19:43:14 +00:00
John Chilton 09a68adb1e Add another API test verifying validation of workflow substitions.
A little different because it targets a different tool, validation, and is inside a repeat.
2015-12-10 00:06:54 +00:00
John Chilton 133e5f2e24 Various small API testing fixes/improvements. 2015-12-10 00:06:53 +00:00
John Chilton 2aa7f04364 Replace __rip_value with dict.pop.
Thanks @bgruening.
2015-12-06 09:50:55 +00:00
John Chilton b11002bef3 Don't iterate over unused key.
Thanks to @bgruening.
2015-12-06 09:50:55 +00:00
Björn Grüning df64706544 Merge pull request #1237 from jmchilton/test_jobs_fix
Fix missing assertion pointed out @nsoranzo.
2015-12-06 00:57:11 +01:00
Björn Grüning 6126bd0e93 Merge pull request #1214 from jmchilton/format_2_1
Small enhancements in workflow inputs and outputs
2015-12-05 21:37:50 +01:00
John Chilton c91a2eb339 Multi data parameter improvements.
Allow multiple collections to be fed to a multi data parameter in one reduction step. Fixes #750 and will really simplify certain classes of tools.

Rebased original with fixes for rerun of such reductions.

Manually tested workflow execution and everything seems fine. The workflow editor already thought this was possible, so that is another bug corrected by this enhancement.

To run the associated API test, execute the following command:

./run_tests.sh -with_framework_test_tools -api test/api/test_tools.py:ToolsTestCase.test_reduce_multiple_lists_on_multi_data

Conflicts:
	static/maps/mvc/dataset/dataset-choice.js.map
	static/maps/mvc/form/form-select-content.js.map
	static/scripts/mvc/form/form-select-content.js
2015-12-04 20:41:21 +00:00
John Chilton 40e6932a25 Fix workflow API tests for workflow output changes. 2015-12-04 20:37:37 +00:00
John Chilton a597e0e834 Implement workflow outputs for format 2 workflow definitions.
Copy CWL style of specifying a outputs specification block at the top-level of the workflow specification and within that use the "source" attribute to specify the output. Reuse the specification used by "$link"s to describe this output - namely <label_or_order_index>[#<output_name=output>].
2015-12-04 20:34:57 +00:00
John Chilton 1bd0a4e970 Refactoring and more testing of format 2 workflow implementation code...
... toward more reusable design.
2015-12-04 20:34:57 +00:00
John Chilton 70a9f21393 Update workflow format 2 code with infrastructure for nesting runnables.
In downstream work this is used for subworkflows and nested tools. Not sure which of these would potentially hit main line Galaxy first so setting this all up in its own commit.
2015-12-04 20:34:57 +00:00