diff --git a/lib/galaxy/tool_util/parser/xml.py b/lib/galaxy/tool_util/parser/xml.py index dbcf380e763..7b18e6afeea 100644 --- a/lib/galaxy/tool_util/parser/xml.py +++ b/lib/galaxy/tool_util/parser/xml.py @@ -598,6 +598,7 @@ def _test_elem_to_dict(test_elem, i, profile=None): stderr=__parse_assert_list_from_elem(test_elem.find("assert_stderr")), expect_exit_code=test_elem.get("expect_exit_code"), expect_failure=string_as_bool(test_elem.get("expect_failure", False)), + expect_test_failure=string_as_bool(test_elem.get("expect_test_failure", False)), maxseconds=test_elem.get("maxseconds", None), ) _copy_to_dict_if_present(test_elem, rval, ["num_outputs"]) diff --git a/lib/galaxy/tool_util/parser/yaml.py b/lib/galaxy/tool_util/parser/yaml.py index 7499cab21cb..1790d52797f 100644 --- a/lib/galaxy/tool_util/parser/yaml.py +++ b/lib/galaxy/tool_util/parser/yaml.py @@ -249,6 +249,7 @@ def _parse_test(i, test_dict): test_dict["stderr"] = __to_test_assert_list(test_dict.get("stderr", [])) test_dict["expect_exit_code"] = test_dict.get("expect_exit_code", None) test_dict["expect_failure"] = test_dict.get("expect_failure", False) + test_dict["expect_test_failure"] = test_dict.get("expect_test_failure", False) return test_dict diff --git a/lib/galaxy/tool_util/verify/interactor.py b/lib/galaxy/tool_util/verify/interactor.py index 8dbdf0f148d..1ceeda0c66c 100644 --- a/lib/galaxy/tool_util/verify/interactor.py +++ b/lib/galaxy/tool_util/verify/interactor.py @@ -1188,9 +1188,9 @@ def _verify_outputs(testdef, history, jobs, data_list, data_collection_list, gal print(_format_stream(job_stdio[stream], stream=stream, format=True), file=sys.stderr) found_exceptions.append(e) - # if testdef.expect_failure: - # if testdef.outputs: - # raise Exception("Cannot specify outputs in a test expecting failure.") + if testdef.expect_failure: + if testdef.outputs: + raise Exception("Cannot specify outputs in a test expecting failure.") # Wait for the job to complete and register expections if the final # status was not what test was expecting. @@ -1293,7 +1293,7 @@ def _verify_outputs(testdef, history, jobs, data_list, data_collection_list, gal except Exception as e: register_exception(e) - if found_exceptions and not testdef.expect_failure: + if found_exceptions and not testdef.expect_test_failure: raise JobOutputsError(found_exceptions, job_stdio) else: return job_stdio @@ -1366,6 +1366,7 @@ class ToolTestDescription: self.stderr = processed_test_dict.get("stderr", None) self.expect_exit_code = processed_test_dict.get("expect_exit_code", None) self.expect_failure = processed_test_dict.get("expect_failure", False) + self.expect_test_failure = processed_test_dict.get("expect_test_failure", False) def test_data(self): """ @@ -1392,6 +1393,7 @@ class ToolTestDescription: "stderr": self.stderr, "expect_exit_code": self.expect_exit_code, "expect_failure": self.expect_failure, + "expect_test_failure": self.expect_test_failure, "name": self.name, "test_index": self.test_index, "tool_id": self.tool_id, diff --git a/lib/galaxy/tool_util/xsd/galaxy.xsd b/lib/galaxy/tool_util/xsd/galaxy.xsd index d2b51ea9967..5bfdb167b15 100644 --- a/lib/galaxy/tool_util/xsd/galaxy.xsd +++ b/lib/galaxy/tool_util/xsd/galaxy.xsd @@ -1106,6 +1106,12 @@ the expectation is for the job fail. If set to ``true`` no job output checks may be present in ``test`` definition. + + + Setting this to ``true`` indicates +that at least one of the assumptions of the test is not met. This is most useful for internal testing. + + Maximum amount of time to let test run. diff --git a/lib/galaxy/tools/test.py b/lib/galaxy/tools/test.py index 6c5579208bf..8920b1d2a2e 100644 --- a/lib/galaxy/tools/test.py +++ b/lib/galaxy/tools/test.py @@ -57,6 +57,7 @@ def description_from_tool_object(tool, test_index, raw_test_dict): "stderr": raw_test_dict.get("stderr", None), "expect_exit_code": raw_test_dict.get("expect_exit_code", None), "expect_failure": raw_test_dict.get("expect_failure", False), + "expect_test_failure": raw_test_dict.get("expect_test_failure", False), "required_files": required_files, "required_data_tables": required_data_tables, "required_loc_files": required_loc_files, diff --git a/test/functional/tools/discover_sort_by.xml b/test/functional/tools/discover_sort_by.xml index 1864b1803d5..4f29087f311 100644 --- a/test/functional/tools/discover_sort_by.xml +++ b/test/functional/tools/discover_sort_by.xml @@ -70,7 +70,7 @@ done - +