[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master 10/23] Alter generate_reject_messages to return a generator.



Signed-off-by: Chris Lamb <lamby@debian.org>
---
 daklib/lintian.py     |   19 +++++--------------
 tests/test_lintian.py |    3 ++-
 2 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/daklib/lintian.py b/daklib/lintian.py
index 260474e..8e65d3f 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 27d1368..4a574a9 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(
-- 
1.6.3.3



Reply to: