Exemplo n.º 1
0
    def verify_hid(self,
                   filename,
                   hda_id,
                   attributes,
                   shed_tool_id,
                   hid="",
                   dataset_fetcher=None):
        assert dataset_fetcher is not None

        def get_filename(test_filename):
            return self.get_filename(test_filename, shed_tool_id=shed_tool_id)

        def verify_extra_files(extra_files):
            self._verify_extra_files_content(extra_files,
                                             hda_id,
                                             shed_tool_id=shed_tool_id,
                                             dataset_fetcher=dataset_fetcher)

        data = dataset_fetcher(hda_id)
        item_label = "History item %s" % hid
        verify(
            item_label,
            data,
            attributes=attributes,
            filename=filename,
            get_filename=get_filename,
            keep_outputs_dir=self.keepOutdir,
            verify_extra_files=verify_extra_files,
        )
Exemplo n.º 2
0
    def _verify_composite_datatype_file_content(self,
                                                file_name,
                                                hda_id,
                                                base_name=None,
                                                attributes=None,
                                                dataset_fetcher=None,
                                                shed_tool_id=None):
        assert dataset_fetcher is not None

        def get_filename(test_filename):
            return self.get_filename(test_filename, shed_tool_id=shed_tool_id)

        data = dataset_fetcher(hda_id, base_name)
        item_label = "History item %s" % hda_id
        try:
            verify(
                item_label,
                data,
                attributes=attributes,
                filename=file_name,
                get_filename=get_filename,
                keep_outputs_dir=self.keepOutdir,
            )
        except AssertionError as err:
            errmsg = 'Composite file (%s) of %s different than expected, difference:\n' % (
                base_name, item_label)
            errmsg += str(err)
            raise AssertionError(errmsg)
Exemplo n.º 3
0
def check_output(runnable, output_properties, test_properties, **kwds):
    """Use galaxy-lib to check a test output.

    Return a list of strings describing the problems encountered,
    and empty list indicates no problems were detected.

    Currently this will only ever return at most one detected problem because
    of the way galaxy-lib throws exceptions instead of returning individual
    descriptions - but this may be enhanced in the future.
    """
    get_filename = _test_filename_getter(runnable)
    path = output_properties["path"]
    output_content = open(path, "rb").read()
    expected_file = test_properties.get("file", None)
    job_output_files = kwds.get("job_output_files", None)
    item_label = "Output with path %s" % path
    problems = []
    try:
        verify(
            item_label,
            output_content,
            attributes=test_properties,
            filename=expected_file,
            get_filename=get_filename,
            keep_outputs_dir=job_output_files,
            verify_extra_files=None,
        )
    except AssertionError as e:
        problems.append(str(e))

    return problems
Exemplo n.º 4
0
def check_output(runnable, output_properties, test_properties, **kwds):
    """Use galaxy-lib to check a test output.

    Return a list of strings describing the problems encountered,
    and empty list indicates no problems were detected.

    Currently this will only ever return at most one detected problem because
    of the way galaxy-lib throws exceptions instead of returning individual
    descriptions - but this may be enhanced in the future.
    """
    get_filename = _test_filename_getter(runnable)
    path = output_properties["path"]
    output_content = open(path, "rb").read()
    # Support Galaxy-like file location (using "file") or CWL-like ("path" or "location").
    expected_file = test_properties.get("file", None)
    if expected_file is None:
        expected_file = test_properties.get("path", None)
    if expected_file is None:
        expected_file = test_properties.get("location", None)

    job_output_files = kwds.get("job_output_files", None)
    item_label = "Output with path %s" % path
    problems = []
    if "asserts" in test_properties:
        # TODO: break fewer abstractions here...
        from galaxy.tools.parser.yaml import __to_test_assert_list
        test_properties["assert_list"] = __to_test_assert_list(
            test_properties["asserts"])
    try:
        verify(
            item_label,
            output_content,
            attributes=test_properties,
            filename=expected_file,
            get_filename=get_filename,
            keep_outputs_dir=job_output_files,
            verify_extra_files=None,
        )
    except AssertionError as e:
        problems.append(str(e))

    return problems
Exemplo n.º 5
0
    def verify_hid(self, filename, hda_id, attributes, shed_tool_id, hid="", dataset_fetcher=None):
        assert dataset_fetcher is not None

        def get_filename(test_filename):
            return self.get_filename(test_filename, shed_tool_id=shed_tool_id)

        def verify_extra_files(extra_files):
            self._verify_extra_files_content(extra_files, hda_id, shed_tool_id=shed_tool_id, dataset_fetcher=dataset_fetcher)

        data = dataset_fetcher(hda_id)
        item_label = "History item %s" % hid
        verify(
            item_label,
            data,
            attributes=attributes,
            filename=filename,
            get_filename=get_filename,
            keep_outputs_dir=self.keepOutdir,
            verify_extra_files=verify_extra_files,
        )
Exemplo n.º 6
0
def check_output(runnable, output_properties, test_properties, **kwds):
    """Use galaxy-lib to check a test output.

    Return a list of strings describing the problems encountered,
    and empty list indicates no problems were detected.

    Currently this will only ever return at most one detected problem because
    of the way galaxy-lib throws exceptions instead of returning individual
    descriptions - but this may be enhanced in the future.
    """
    get_filename = _test_filename_getter(runnable)
    path = output_properties["path"]
    output_content = open(path, "rb").read()
    # Support Galaxy-like file location (using "file") or CWL-like ("path" or "location").
    expected_file = test_properties.get("file", None)
    if expected_file is None:
        expected_file = test_properties.get("path", None)
    if expected_file is None:
        expected_file = test_properties.get("location", None)

    job_output_files = kwds.get("job_output_files", None)
    item_label = "Output with path %s" % path
    problems = []
    if "asserts" in test_properties:
        # TODO: break fewer abstractions here...
        from galaxy.tools.parser.yaml import __to_test_assert_list
        test_properties["assert_list"] = __to_test_assert_list(test_properties["asserts"])
    try:
        verify(
            item_label,
            output_content,
            attributes=test_properties,
            filename=expected_file,
            get_filename=get_filename,
            keep_outputs_dir=job_output_files,
            verify_extra_files=None,
        )
    except AssertionError as e:
        problems.append(str(e))

    return problems
Exemplo n.º 7
0
    def _verify_composite_datatype_file_content(self, file_name, hda_id, base_name=None, attributes=None, dataset_fetcher=None, shed_tool_id=None):
        assert dataset_fetcher is not None

        def get_filename(test_filename):
            return self.get_filename(test_filename, shed_tool_id=shed_tool_id)

        data = dataset_fetcher(hda_id, base_name)
        item_label = "History item %s" % hda_id
        try:
            verify(
                item_label,
                data,
                attributes=attributes,
                filename=file_name,
                get_filename=get_filename,
                keep_outputs_dir=self.keepOutdir,
            )
        except AssertionError as err:
            errmsg = 'Composite file (%s) of %s different than expected, difference:\n' % (base_name, item_label)
            errmsg += str(err)
            raise AssertionError(errmsg)