From: Chris Lamb Date: Sat, 31 Oct 2009 10:29:14 +0000 (+0000) Subject: Alter generate_reject_messages to return a generator. X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=cfa9081dd435e9b0fd5405c4a2aa5ecccac80312 Alter generate_reject_messages to return a generator. Signed-off-by: Chris Lamb --- diff --git a/daklib/lintian.py b/daklib/lintian.py index 260474ec..8e65d3f5 100644 --- a/daklib/lintian.py +++ b/daklib/lintian.py @@ -16,11 +16,9 @@ def parse_lintian_output(output): def generate_reject_messages(parsed_tags, tag_definitions, log=lambda *args: args): """ Generates package reject messages by comparing parsed lintian output with - tag definitions. + tag definitions. Returns a generator containing the reject messages. """ - rejects = [] - tags = set() for values in tag_definitions.values(): for tag in values: @@ -41,25 +39,18 @@ def generate_reject_messages(parsed_tags, tag_definitions, log=lambda *args: arg # Overriding this tag is NOT allowed. log('ftpmaster does not allow tag to be overridable', etag) - rejects.append( - "%s: Overriden tag %s found, but this tag " + yield "%s: Overriden tag %s found, but this tag " \ "may not be overridden." % (epackage, etag) - ) else: # Tag is known and not overridden; reject - rejects.append( - "%s: Found lintian output: '%s %s', automatically " + yield "%s: Found lintian output: '%s %s', automatically " \ "rejected package." % (epackage, etag, etext) - ) # Now tell if they *might* override it. if etag in tag_definitions['nonfatal']: log("auto rejecting", "overridable", etag) - rejects.append( - "%s: If you have a good reason, you may override this " - "lintian tag." % epackage) + yield "%s: If you have a good reason, you may override this " \ + "lintian tag." % epackage else: log("auto rejecting", "not overridable", etag) - - return rejects diff --git a/tests/test_lintian.py b/tests/test_lintian.py index 27d13680..4a574a9d 100755 --- a/tests/test_lintian.py +++ b/tests/test_lintian.py @@ -43,7 +43,8 @@ class ParseLintianTestCase(DakTestCase): class GenerateRejectMessages(DakTestCase): def assertNumReject(self, input, defs, num): - self.assertEqual(len(generate_reject_messages(input, defs)), num) + msgs = list(generate_reject_messages(input, defs)) + self.assertEqual(len(msgs), num) def testUnknownTag(self): self.assertNumReject(