diff --git a/isatools/isatab/validate/rules/core.py b/isatools/isatab/validate/rules/core.py index d0fe08fd..a3ad728c 100644 --- a/isatools/isatab/validate/rules/core.py +++ b/isatools/isatab/validate/rules/core.py @@ -54,7 +54,7 @@ def execute(self, validator_params: dict) -> None: try: response = self.rule(*params) if self.identifier == '3008': - validator_params['term_source_refs'] = response[0] + validator_params['term_source_refs'] = response if self.identifier == '4001': validator_params['configs'] = response self.executed = True diff --git a/isatools/isatab/validate/rules/rules_30xx.py b/isatools/isatab/validate/rules/rules_30xx.py index 1716b4df..a659786f 100644 --- a/isatools/isatab/validate/rules/rules_30xx.py +++ b/isatools/isatab/validate/rules/rules_30xx.py @@ -150,6 +150,7 @@ def check_single_field(cell_value, source, acc, config_field, filename): :param filename: Filename of the table :return: True if OK, False if not OK """ + return_value = True if ((cell_has_value(cell_value) and not cell_has_value(source) and cell_has_value(acc)) or not cell_has_value(cell_value)): msg = "Missing Term Source REF in annotation or missing Term Source Name" @@ -157,13 +158,14 @@ def check_single_field(cell_value, source, acc, config_field, filename): "label/accession/source are provided.").format(config_field.header, filename) validator.add_warning(message=msg, supplemental=spl, code=3008) log.warning("(W) {}".format(spl)) - if source not in tsrs: - spl = ("Term Source REF, for the field '{}' in the file '{}' does not refer to a declared " - "Ontology Source.").format(config_field.header, filename) - validator.add_warning(message="Term Source REF reference broken", supplemental=spl, code=3011) - log.warning("(W) {}".format(spl)) - return False - return True + return_value = False + if cell_has_value(source) and source not in tsrs: + spl = ("Term Source REF, for the field '{}' in the file '{}' does not refer to a declared " + "Ontology Source.").format(cfield.header, filename) + validator.add_warning(message="Term Source REF reference broken", supplemental=spl, code=3011) + log.warning("(W) {}".format(spl)) + return_value = False + return return_value result = True nfields = len(table.columns)