def for_class(XXX): from seed.helper.print_methods import wrapped_print_methods wrapped_print_methods(XXX) from seed.helper.detect_method_conflict import \ wrapped_print_detect_method_conflict wrapped_print_detect_method_conflict(XXX) from seed.helper.find_bases_without_slots import print_bases_without_slots print_bases_without_slots(XXX)
@override def astate_eq(ops, self, lhs_astate, rhs_astate): return lhs_astate == rhs_astate @override def make_astate_dict(ops, self, other_or_astate_value_pairs=None): if other_or_astate_value_pairs is None: return {} return dict(other_or_astate_value_pairs) @override def make_astate_set(ops, self, astates=None): if astates is None: return set() return set(astates) if __name__ == '__main__': XXX = IFAOps__hashable_astate from seed.helper.print_methods import wrapped_print_methods wrapped_print_methods(XXX) from seed.helper.detect_method_conflict import \ wrapped_print_detect_method_conflict wrapped_print_detect_method_conflict(XXX) from seed.helper.find_bases_without_slots import print_bases_without_slots print_bases_without_slots(XXX)
def doctest_all( package_or_qname, *, recursive: bool, list_qnames=False # module_qual_name , list_classes_without_slots=True, filter_classes_if_defined_in_this_module=True # when list_classes_without_slots is True , **kwargs) -> None: ''' input: package_or_qname :: pkg_obj | str recursive :: bool kwargs see: doctest.testmod(m, verbose=None, report=True, optionflags=0, raise_on_error=False, exclude_empty=False) output: does_success ''' list_qnames = bool(list_qnames) list_classes_without_slots = bool(list_classes_without_slots) filter_classes_if_defined_in_this_module = bool( filter_classes_if_defined_in_this_module) if list_qnames: def show_qname(m): print(m.__name__) else: def show_qname(m): pass if list_classes_without_slots: classes = set() if not filter_classes_if_defined_in_this_module: def collect_classes_of_module(m): classes.update(iter_classes_of_module(m)) else: def collect_classes_of_module(m): classes.update(cls for cls in iter_classes_of_module(m) if is_defined_in(cls, m)) else: def collect_classes_of_module(m): pass for m in iter_submodules(package_or_qname, recursive=recursive): collect_classes_of_module(m) show_qname(m) (failure_count, test_count) = testmod(m, **kwargs) if failure_count: return False if list_classes_without_slots: # tuple may be introduced by namedtuple print_bases_without_slots(*classes) return True