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 2008/06/29 11:06:30 UTC

svn commit: r672611 - in /incubator/rat/main/trunk/scan/src: main/org/apache/rat/scan/ test/org/apache/rat/scan/diff/

Author: rdonkin
Date: Sun Jun 29 02:06:30 2008
New Revision: 672611

URL: http://svn.apache.org/viewvc?rev=672611&view=rev
Log:
Change diff to output xhtml

Added:
    incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/
    incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-01.html
    incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-28.html
Modified:
    incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/connect.py
    incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py
    incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/tests.py

Modified: incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/connect.py
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/connect.py?rev=672611&r1=672610&r2=672611&view=diff
==============================================================================
--- incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/connect.py (original)
+++ incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/connect.py Sun Jun 29 02:06:30 2008
@@ -120,5 +120,5 @@
     if latestDiffs == None:
         print "First run so skipping comparison "
     else:
-        save(diff_file, addPreamble(latestDiffs))
+        save(diff_file, toXhtmlDocument(latestDiffs))
     
\ No newline at end of file

Modified: incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py?rev=672611&r1=672610&r2=672611&view=diff
==============================================================================
--- incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py (original)
+++ incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py Sun Jun 29 02:06:30 2008
@@ -107,7 +107,7 @@
                         and document.ripemd == self.ripemd)
             
     def summaryXml(self):
-        return '<document name="' + self.name + '" dir="' + self.dir + '"/>'
+        return "<li class='resource'>" + self.name + '<li/>'
     
 def document(dir, name, md5, sha, ripemd):
     result = Document(dir)
@@ -214,14 +214,14 @@
         try:
             documents = Documents()
             documents.load(f.read())
-            if not documents.on == name[-14:-4]:
+            if not documents.on == name[-15:-5]:
                 raise InvalidDocument('Document date does not match file date. File: ' + file)
             return documents
         finally:
             f.close()
             
     def latest(self):
-        xmlDocuments = filter(lambda x:x.endswith('.xml') and x.startswith(self.prefix), os.listdir(self.basedir))
+        xmlDocuments = filter(lambda x:x.endswith('.html') and x.startswith(self.prefix), os.listdir(self.basedir))
         xmlDocuments.sort()
         return map(self.load, xmlDocuments[-2:])
                 
@@ -232,11 +232,34 @@
         else:
             return None
         
+    def toXml(self, documents):
+        result = ""
+        for dir, documentsInDir in dict((dir, filter(lambda doc: doc.dir == dir, documents)) for dir in set([document.dir for document in documents])).iteritems():
+            result = result + "<li class='dir'>" + dir + "<ul>"
+            for document in sorted(documentsInDir):
+                result = result + "<li class='resource'>" + document.name + "</li>"
+            result = result + "</ul></li>"
+        return result
+        
     def diffs(self, one, two):
+        result = "<div class='diff'><h1>From <a href='"  + self.prefix + "-" + two.on + ".html' class='start-date'>"+ two.on + "</a> Till <a href='"  + self.prefix + "-" + one.on + ".html' class='end-date'>" + one.on + '</a></h1>'
         added, removed, modified = one.compare(two)
-        toXml = lambda a, name: simpleElement(name, reduce(lambda b, c: b + c, map(lambda x: x.summaryXml(), a), ''))
-        diff = toXml(added, 'added') + toXml(modified, 'modified') + toXml(removed, 'missing')
-        return '<changes from="' + two.on + '" to="' + one.on + '">' + diff + '</changes>' 
+        
+        result = result + "<h2>Added Resources</h2><ul class='added'>"
+        result = result + self.toXml(added)
+        result = result + "</ul>"
+        
+        result = result + "<h2>Modified Resources</h2><ul class='modified'>"
+        result = result + self.toXml(modified)
+        result = result + "</ul>"
+        
+        result = result + "<h2>Removed Resources</h2><ul class='deleted'>"
+        result = result + self.toXml(removed)
+        result = result + "</ul>"
+        
+#        toXml = lambda a, name: simpleElement(name, reduce(lambda b, c: b + c, map(lambda x: x.summaryXml(), a), ''))
+#        diff = toXml(added, 'added') + toXml(modified, 'modified') + toXml(removed, 'missing')
+        return result + '</div>' 
                 
 def simpleElement(element, body):
     return startTag(element) + body + endTag(element)

Modified: incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/tests.py
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/tests.py?rev=672611&r1=672610&r2=672611&view=diff
==============================================================================
--- incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/tests.py (original)
+++ incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/tests.py Sun Jun 29 02:06:30 2008
@@ -198,4 +198,12 @@
         self.scanner = scanner.Scanner(TEST_BASE_DIR + "scanner/", "NOW")
         
     def testScan(self):
-        self.assertEquals(SCANNER_OUT, self.scanner.scan())
\ No newline at end of file
+        self.assertEquals(SCANNER_OUT, self.scanner.scan())
+        
+        
+class ScanDocumentTest(unittest.TestCase):
+    def setUp(self):
+        self.auditor = diff.Auditor(TEST_BASE_DIR + "diff/", "audit")
+        
+    def testLatestDiff(self):
+        self.assertEquals("<div class='diff'><h1>From <a href='audit-2008-06-01.html' class='start-date'>2008-06-01</a> Till <a href='audit-2008-06-28.html' class='end-date'>2008-06-28</a></h1><h2>Added Resources</h2><ul class='added'><li class='dir'>scanner/sub/deep<ul><li class='resource'>HamletNot.txt</li></ul></li></ul><h2>Modified Resources</h2><ul class='modified'><li class='dir'>scanner/sub/deep<ul><li class='resource'>JuliusCaesar</li></ul></li></ul><h2>Removed Resources</h2><ul class='deleted'><li class='dir'>scanner/sub/deep<ul><li class='resource'>Hamlet.txt</li></ul></li></ul></div>", self.auditor.latestDiffs())
\ No newline at end of file

Added: incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-01.html
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-01.html?rev=672611&view=auto
==============================================================================
--- incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-01.html (added)
+++ incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-01.html Sun Jun 29 02:06:30 2008
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<!-- 
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<head>
+<title>Audited On 2008-06-01</title>
+</head>
+<body>
+<p>Audit ran on <span class='created'>2008-06-01</span></p>
+<div class='audit'>
+<p>At <span class='at'>2008-06-01T17:32:28.403466</span> started to
+scan root <span class='base-dir'>/www/www.apache.org/dist/incubator</span>
+</p>
+<p>Artifacts by directory:</p>
+<ul>
+	<li><span class='dir'>scanner</span>
+	<ul>
+		<li><a name='scanner/HenryV.txt' class='resource'>HenryV.txt</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>c81f4cd3b2203ae869b8c6acea6bf73c</dd>
+			<dt>sha</dt>
+			<dd class='sha'>2ae73f5cfe7943a7d51b46e653948af7f067a6b01e61c827201c8e17b9231956f48b3e8e0da64e822ca9fdeb7a62f5af623406e2dbb9b39a8dabf569d2046402</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>4b0a5f9317e0d3165ea4982f90e7266a553d8353</dd>
+		</dl>
+		</li>
+		<li><a name='scanner/RichardIII.txt' class='resource'>RichardIII.txt</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>911bade3f0bcdb652f1331fb19d7bf07</dd>
+			<dt>sha</dt>
+			<dd class='sha'>3fd5d26bbbea1dfddeeab642bffd0d7fbdc6c4ed0d06faae3283e1e7b220d943200048630663c6a33e7cbd26fceab585920cd77d3481ce4dfa209b5000ccd4de</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>30ddc78d8bf08ef52ec8a7a8f7553c27931a6d0d</dd>
+		</dl>
+		</li>
+	</ul>
+	</li>
+	<li><span class='dir'>scanner/sub</span>
+	<ul></ul>
+	</li>
+	<li><span class='dir'>scanner/sub/deep</span>
+	<ul>
+		<li><a name='scanner/sub/deep/Hamlet.txt' class='resource'>Hamlet.txt</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>1ccce242df4a39d25057aebed53be182</dd>
+			<dt>sha</dt>
+			<dd class='sha'>2b92d82dcd9db3a3142f1bd1522d0a3818555edfb3fd579d80e3b7ebc67adb8fb73db0185ccdc72704294005fb3830529e8962715f2dbfa7da0bb0553abb573a</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>307a14094c28da7a46f894ed10eb732fb4d0f199</dd>
+		</dl>
+		</li>
+		<li><a name='scanner/sub/deep/JuliusCaesar' class='resource'>JuliusCaesar</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>0ef9754818b94baecca3596b43eb0753</dd>
+			<dt>sha</dt>
+			<dd class='sha'>54184034009fc6b4e0dadfb0e14a1bad9c4c03791a982c4a7111dc7e4596164c1ca3dc49ec37c6081daf2bcd59d73a6c085beb1203b667066b77b58731f72460</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>0aa5485c5b892be83910fae34c304c1ac41240ec</dd>
+		</dl>
+		</li>
+	</ul>
+	</li>
+</ul>
+</div>
+</body>
+</html>

Added: incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-28.html
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-28.html?rev=672611&view=auto
==============================================================================
--- incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-28.html (added)
+++ incubator/rat/main/trunk/scan/src/test/org/apache/rat/scan/diff/audit-2008-06-28.html Sun Jun 29 02:06:30 2008
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<!-- 
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<head>
+<title>Audited On 2008-06-28</title>
+</head>
+<body>
+<p>Audit ran on <span class='created'>2008-06-28</span></p>
+<div class='audit'>
+<p>At <span class='at'>2008-06-28T17:32:28.403466</span> started to
+scan root <span class='base-dir'>/www/www.apache.org/dist/incubator</span>
+</p>
+<p>Artifacts by directory:</p>
+<ul>
+	<li><span class='dir'>scanner</span>
+	<ul>
+		<li><a name='scanner/HenryV.txt' class='resource'>HenryV.txt</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>c81f4cd3b2203ae869b8c6acea6bf73c</dd>
+			<dt>sha</dt>
+			<dd class='sha'>2ae73f5cfe7943a7d51b46e653948af7f067a6b01e61c827201c8e17b9231956f48b3e8e0da64e822ca9fdeb7a62f5af623406e2dbb9b39a8dabf569d2046402</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>4b0a5f9317e0d3165ea4982f90e7266a553d8353</dd>
+		</dl>
+		</li>
+		<li><a name='scanner/RichardIII.txt' class='resource'>RichardIII.txt</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>911bade3f0bcdb652f1331fb19d7bf07</dd>
+			<dt>sha</dt>
+			<dd class='sha'>3fd5d26bbbea1dfddeeab642bffd0d7fbdc6c4ed0d06faae3283e1e7b220d943200048630663c6a33e7cbd26fceab585920cd77d3481ce4dfa209b5000ccd4de</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>30ddc78d8bf08ef52ec8a7a8f7553c27931a6d0d</dd>
+		</dl>
+		</li>
+	</ul>
+	</li>
+	<li><span class='dir'>scanner/sub</span>
+	<ul></ul>
+	</li>
+	<li><span class='dir'>scanner/sub/deep</span>
+	<ul>
+		<li><a name='scanner/sub/deep/HamletNot.txt' class='resource'>HamletNot.txt</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>1ccce242df4a39d25057aebed53be182</dd>
+			<dt>sha</dt>
+			<dd class='sha'>2b92d82dcd9db3a3142f1bd1522d0a3818555edfb3fd579d80e3b7ebc67adb8fb73db0185ccdc72704294005fb3830529e8962715f2dbfa7da0bb0553abb573a</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>307a14094c28da7a46f894ed10eb732fb4d0f199</dd>
+		</dl>
+		</li>
+		<li><a name='scanner/sub/deep/JuliusCaesar' class='resource'>JuliusCaesar</a>
+		<dl>
+			<dt>md5</dt>
+			<dd class='md5'>0ef9754818b94baecca3a23452345596b43eb0753</dd>
+			<dt>sha</dt>
+			<dd class='sha'>54184034009fc6b4e0dadfb0e14a1234523452345bad9c4c03791a982c4a7111dc7e4596164c1ca3dc49ec37c6081daf2bcd59d73a6c085beb1203b667066b77b58731f72460</dd>
+			<dt>ripe</dt>
+			<dd class='ripe'>0aa5485c5b892be83910fae34c304c1ac41240ec2345234524</dd>
+		</dl>
+		</li>
+	</ul>
+	</li>
+</ul>
+</div>
+</body>
+</html>