Esempio n. 1
0
    def should_skip(self):
        """Handle of 'skip' in test.yaml.

        If the test should be skipped according to test.yaml, push the result
        and return True. Otherwise, just return false.
        """
        status = None
        if 'skip' in self.test_env:
            eval_env = {
                'env': self.env,
                'test_env': self.test_env,
                'disk_space': lambda: df(self.env.working_dir)
            }

            for candidate_status, expr in self.test_env['skip']:
                try:
                    if eval(expr, eval_env):
                        status = TestStatus[candidate_status]
                        break
                except Exception:
                    logging.error(traceback.format_exc())
                    status = TestStatus.ERROR
                    break

        if status is None:
            return False
        else:
            self.result.set_status(status)
            self.push_result()
            return True
Esempio n. 2
0
 def test_control_creator(self):
     return YAMLTestControlCreator({
         'env':
         self.env,
         'test_env':
         self.test_env,
         'disk_space':
         lambda: df(self.env.working_dir)
     })
Esempio n. 3
0
    def should_skip(self):
        """Handle of 'skip' in test.yaml.
        :return: None if the test should not be skipped, a TestStatus
            otherwise.
        :rtype: None | TestStatus
        """
        if 'skip' in self.test_env:
            eval_env = {
                'env': self.env,
                'test_env': self.test_env,
                'disk_space': lambda: df(self.env.working_dir)}

            for status, expr in self.test_env['skip']:
                try:
                    if eval(expr, eval_env):
                        return TestStatus[status]
                except Exception:
                    logging.error(traceback.format_exc())
                    return TestStatus.ERROR
        return None