('deprecated', [bool], False), ] for (attr_name, attr_types, attr_required) in checks: attr_value = getattr(header_cls, attr_name) if getattr(header_cls, "no_coverage") and attr_name in ['syntax']: continue if attr_name in ['syntax'] and attr_value == False: continue if attr_required and attr_value is None: sys.stderr.write("* %s lacks %s\n" % (header_name, attr_name)) elif True not in [isinstance(attr_value, t) for t in attr_types]: sys.stderr.write("* %s %s has wrong type\n" % (header_name, attr_name)) canonical_name = getattr(header_cls, "canonical_name") if canonical_name != header_name: sys.stderr.write("* %s has mismatching canonical name %s\n" % (header_name, canonical_name)) loader = unittest.TestLoader() header_mod = HeaderProcessor.find_header_module(header_name) tests = loader.loadTestsFromModule(header_mod) if tests.countTestCases() == 0 and getattr(header_cls, "no_coverage") == False: sys.stderr.write("* %s doesn't have any tests\n" % header_name) if __name__ == "__main__": checkRegistryCoverage(sys.argv[1]) common.checkSubClasses(HttpHeader, checkHeader)
('list_header', [bool], True), ('deprecated', [bool], False), ] for (attr_name, attr_types, attr_required) in checks: attr_value = getattr(header_cls, attr_name) if getattr(header_cls, "no_coverage") and attr_name in ['syntax']: continue if attr_name in ['syntax'] and attr_value == False: continue if attr_required and attr_value == None: sys.stderr.write("* %s lacks %s\n" % (header_name, attr_name)) elif True not in [isinstance(attr_value, t) for t in attr_types]: sys.stderr.write("* %s %s has wrong type\n" % (header_name, attr_name)) canonical_name = getattr(header_cls, "canonical_name") if canonical_name != header_name: sys.stderr.write("* %s has mismatching canonical name %s\n" % (header_name, canonical_name)) loader = unittest.TestLoader() header_mod = HeaderProcessor.find_header_module(header_name) tests = loader.loadTestsFromModule(header_mod) if tests.countTestCases() == 0 and getattr(header_cls, "no_coverage") == False: sys.stderr.write("* %s doesn't have any tests\n" % header_name) if __name__ == "__main__": checkRegistryCoverage(sys.argv[1]) common.checkSubClasses(HttpHeader, checkHeader)
""" Check all Note definitions. """ import re from redbot.speak import Note, categories, levels import common def checkNote(note_cls): note_name = note_cls.__name__ assert isinstance(note_cls.category, categories), note_name assert isinstance(note_cls.level, levels), note_name assert isinstance(note_cls.summary, str), note_name assert note_cls.summary != "", note_name assert not re.search(r"\s{2,}", note_cls.summary), note_name assert isinstance(note_cls.text, str), note_name if __name__ == "__main__": common.checkSubClasses(Note, checkNote)