You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@creadur.apache.org by rd...@apache.org on 2011/07/16 13:52:19 UTC

svn commit: r1147409 - in /incubator/rat/eye/trunk: org/apache/rat/eye/review.py test/test_review.py

Author: rdonkin
Date: Sat Jul 16 11:52:18 2011
New Revision: 1147409

URL: http://svn.apache.org/viewvc?rev=1147409&view=rev
Log:
Added reviewer for jar manifests.

Modified:
    incubator/rat/eye/trunk/org/apache/rat/eye/review.py
    incubator/rat/eye/trunk/test/test_review.py

Modified: incubator/rat/eye/trunk/org/apache/rat/eye/review.py
URL: http://svn.apache.org/viewvc/incubator/rat/eye/trunk/org/apache/rat/eye/review.py?rev=1147409&r1=1147408&r2=1147409&view=diff
==============================================================================
--- incubator/rat/eye/trunk/org/apache/rat/eye/review.py (original)
+++ incubator/rat/eye/trunk/org/apache/rat/eye/review.py Sat Jul 16 11:52:18 2011
@@ -53,11 +53,33 @@ class MetaInfContainsLicenseAndNotice():
 
 class MetaInfContents():
     def reviewMetaInf(self, metainf):
-        return Message("In META-INF", [os.path.basename(name) for name in metainf.keys()])
+        return Message("In META-INF",
+                       [os.path.basename(name) for name in metainf.keys()])
 
 class SimpleMetaInfView():
     def reviewMetaInf(self, metainf):
         return [Message(name, details) for name, details in metainf.iteritems()]
+        
+
+class JarManifestReviewer():
+    """
+    Reviews Jar MANIFESTS.
+    """
+    def __init__(self, reviewers):
+        self.reviewers = reviewers
+    
+    def reviewMetaInf(self, metainf):
+        if self.reviewers:
+            return filter(None,
+                          [self._reviewMetaInf(metainf, reviewer)
+                           for reviewer in self.reviewers])
+        else:
+            return None
+        
+    def _reviewMetaInf(self, metainf, reviewer):
+        if hasattr(reviewer, "reviewManifest"):
+            return reviewer.reviewManifest(metainf["MANIFEST.MF"])
+        return None
 
 class SimpleJarManifestParser():
     """

Modified: incubator/rat/eye/trunk/test/test_review.py
URL: http://svn.apache.org/viewvc/incubator/rat/eye/trunk/test/test_review.py?rev=1147409&r1=1147408&r2=1147409&view=diff
==============================================================================
--- incubator/rat/eye/trunk/test/test_review.py (original)
+++ incubator/rat/eye/trunk/test/test_review.py Sat Jul 16 11:52:18 2011
@@ -107,5 +107,31 @@ class TestReviews(unittest.TestCase):
             self.assertIsNotNone(review.MetaInfContainsLicenseAndNotice().reviewMetaInf(
                         {chaff: "Chaff Text"}))
 
+class ManifestSpy():
+    def __init__(self):
+        self.manifests = []
+        self.messages = []
+        
+    def reviewManifest(self, manifest):
+        self.manifests.append(manifest)
+        return self.messages
+
+class TestManifestReviews(unittest.TestCase):
+    
+    
+    def testHeaderNameReview(self):
+        someHeaderNames = ["OneHeader", "Another", "21"]
+        manifest = []
+        for name in someHeaderNames:
+            manifest.append(name + ": SomeValue\n")
+        aMetaInf = {"MANIFEST.MF": manifest, "CHAFF":["Some chaff\n"]}
+        
+        spy = ManifestSpy()
+        messages = ["whatever", "whoever"]
+        spy.messages = messages
+        
+        self.assertEquals(review.JarManifestReviewer([spy]).reviewMetaInf(aMetaInf), [messages])
+        self.assertEquals(spy.manifests, [manifest])
+
 if __name__ == '__main__':
     unittest.main()