Source code for dl_data_validation_toolset.framework.base_test

import h5py
import abc
from dl_data_validation_toolset.framework.report import IndividualReport
import logging


[docs]class BaseTest(object): __metaclass__ = abc.ABCMeta logger = logging.getLogger("test") def __init__(self, filename): self.logger.info("Scanning file: {}".format(filename)) self._file = h5py.File(filename, 'r') @property def _tests_(self): return [att for att in dir(self) if att.startswith('test')]
[docs] def validate(self, report): for test in self._tests_: self.logger.debug("Starting Test: {}".format(test)) try: test_result, status = getattr(self, test)() self.logger.debug(test_result) self.logger.debug(status) report.reports.append(IndividualReport(test, status, test_result)) except Exception as e: report.valid = False self.logger.warning("Critically failed test: {} with {}".format(test, e)) report.reports.append(IndividualReport(test, 0, {'failure': str(e)}))