def get_options(cls): start_stop_signature = Or(None, validate_func("env"), validate_func("env", "result")) return { "name": And(str, lambda s: len(s) <= MAX_TEST_NAME_LENGTH), ConfigOption("description", default=None): Or(str, None), ConfigOption("environment", default=[]): [Resource], ConfigOption("before_start", default=None): start_stop_signature, ConfigOption("after_start", default=None): start_stop_signature, ConfigOption("before_stop", default=None): start_stop_signature, ConfigOption("after_stop", default=None): start_stop_signature, ConfigOption("test_filter"): filtering.BaseFilter, ConfigOption("test_sorter"): ordering.BaseSorter, ConfigOption("stdout_style"): test_styles.Style, ConfigOption("tags", default=None): Or(None, Use(tagging.validate_tag_value)), }
def configuration_schema(self): """ Schema for options validation and assignment of default values. """ def iterable_suites(obj): """Create an iterable suites object.""" suites = [obj ] if not isinstance(obj, collections.Iterable) else obj for suite in suites: set_testsuite_testcases(suite) return suites overrides = { 'suites': Use(iterable_suites), ConfigOption('environment', default=[]): [Resource], ConfigOption('before_start', default=None): validate_func(['env']), ConfigOption('after_start', default=None): validate_func(['env']), ConfigOption('before_stop', default=None): validate_func(['env', 'result']), ConfigOption('after_stop', default=None): validate_func(['env', 'result']), ConfigOption('result', default=Result): lambda r: isinstance(r(), Result), } return self.inherit_schema(overrides, super(MultiTestConfig, self))
def get_options(cls): start_stop_signature = Or( None, validate_func('env'), validate_func('env', 'result'), ) return { 'suites': Use(iterable_suites), ConfigOption('result', default=Result): is_subclass(Result), ConfigOption('before_start', default=None): start_stop_signature, ConfigOption('after_start', default=None): start_stop_signature, ConfigOption('before_stop', default=None): start_stop_signature, ConfigOption('after_stop', default=None): start_stop_signature, ConfigOption('thread_pool_size', default=0): int, ConfigOption('max_thread_pool_size', default=10): int, ConfigOption('part', default=None): Or( None, And((int, ), lambda tp: len(tp) == 2 and 0 <= tp[0] < tp[1] and tp[1] > 1)) }
def set_reschedule_check(self, check_reschedule): """ Sets callable with custom rules to determine if a task should be rescheduled. It must accept the pool object and the task result, and based on these it returns if the task should be rescheduled (i.e due to a known rare system error). :param check_reschedule: Custom callable for task reschedule. :type check_reschedule: ``callable`` that takes ``pool``, ``task_result`` arguments. :return: True if Task should be rescheduled else False. :rtype: ``bool`` """ validate_func('pool', 'task_result')(check_reschedule) self.should_reschedule = check_reschedule
def get_options(cls): start_stop_signature = Or( None, validate_func('env'), validate_func('env', 'result'), ) return { 'suites': Use(iterable_suites), ConfigOption('environment', default=[]): [Resource], ConfigOption('before_start', default=None): start_stop_signature, ConfigOption('after_start', default=None): start_stop_signature, ConfigOption('before_stop', default=None): start_stop_signature, ConfigOption('after_stop', default=None): start_stop_signature, ConfigOption('result', default=Result): is_subclass(Result) }
def validate_custom_func(check_rerun): """ Validate the callable which determines if a task should be rerun. It must accept pool object (``pool``) and task result (``task_result``). :param check_rerun: Custom callable for task rerun or reschedule. :type check_rerun: ``callable`` """ if validate_func("pool", "task_result")(check_rerun): return check_rerun else: raise ValueError("Not a valid function for checking rerun")
def get_options(cls): start_stop_signature = Or( None, validate_func('env'), validate_func('env', 'result'), ) return { # 'name': And(str, lambda s: s.count(' ') == 0), 'name': str, ConfigOption('description', default=None): str, ConfigOption('environment', default=[]): [Resource], ConfigOption('before_start', default=None): start_stop_signature, ConfigOption('after_start', default=None): start_stop_signature, ConfigOption('before_stop', default=None): start_stop_signature, ConfigOption('after_stop', default=None): start_stop_signature, ConfigOption('test_filter', default=filtering.Filter(), block_propagation=False): filtering.BaseFilter, ConfigOption('test_sorter', default=ordering.NoopSorter(), block_propagation=False): ordering.BaseSorter, ConfigOption('stdout_style', default=defaults.STDOUT_STYLE, block_propagation=False): test_styles.Style, ConfigOption('tags', default=None): Or(None, Use(tagging.validate_tag_value)) }