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/28 18:52:39 UTC
svn commit: r672546 - in
/incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan: diff.py
scanner.py tests.py
Author: rdonkin
Date: Sat Jun 28 09:52:38 2008
New Revision: 672546
URL: http://svn.apache.org/viewvc?rev=672546&view=rev
Log:
Switch diff to read new format
Modified:
incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py
incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/scanner.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/diff.py
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/diff.py?rev=672546&r1=672545&r2=672546&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 Sat Jun 28 09:52:38 2008
@@ -25,15 +25,15 @@
return repr(self.value)
class Document:
- def __init__(self):
+ def __init__(self, dir):
self.reset()
+ self.dir = dir
def __str__(self):
- return self.name + "," + self.dir
+ return self.name
def reset(self):
self.next = None
- self.dir = None
self.name = None
self.md5 = None
self.sha = None
@@ -57,15 +57,27 @@
else:
self.ripemd = self.ripemd + value
+ def __setName(self, value):
+ if self.name == None:
+ self.name = value
+ else:
+ self.name = self.name + value
+
+ def __setDir(self, value):
+ if self.dir == None:
+ self.dir = value
+ else:
+ self.dir = self.dir + value
+
def start_element(self, name, attrs):
- if name == 'document':
- self.name = attrs.get('name')
- self.dir = attrs.get('dir')
- elif name == 'md5':
+ type = attrs.get('class')
+ if type == 'resource':
+ self.next = self.__setName
+ elif type == 'md5':
self.next = self.__setMd5
- elif name == 'sha512':
+ elif type == 'sha':
self.next = self.__setSha
- elif name == 'ripemd160':
+ elif type == 'ripe':
self.next = self.__setRipemd
else:
self.next = None
@@ -98,8 +110,7 @@
return '<document name="' + self.name + '" dir="' + self.dir + '"/>'
def document(dir, name, md5, sha, ripemd):
- result = Document()
- result.dir = dir
+ result = Document(dir)
result.name = name
result.md5 = md5
result.sha = sha
@@ -110,6 +121,8 @@
def __init__(self):
self.documents = []
self.__current = None
+ self.__setter = None
+ self.dir = None
def append(self, document):
self.documents.append(document)
@@ -124,11 +137,27 @@
parser.CharacterDataHandler = self.char_data
parser.Parse(document)
+ def __setOn(self, value):
+ if self.on == None:
+ self.on = value
+ else:
+ self.on = self.on + value
+
+ def __setDir(self, value):
+ if self.__dir == None:
+ self.__dir = value
+ else:
+ self.__dir = self.__dir + value
+
def start_element(self, name, attrs):
- if name == 'audit':
- self.on = attrs.get('on')
- if name == 'document':
- self.__current = Document()
+ type = attrs.get("class")
+ if type == 'created':
+ self.__setter = self.__setOn
+ if type == 'dir':
+ self.__dir = None
+ self.__setter = self.__setDir
+ if type == 'resource':
+ self.__current = Document(self.__dir)
self.documents.append(self.__current)
self.__current.start_element(name, attrs)
elif not self.__current == None:
@@ -137,12 +166,13 @@
def end_element(self, name):
if not self.__current == None:
self.__current.end_element(name)
- if name == 'document':
- self.__current = None
+ self.__setter = None
def char_data(self, data):
if not self.__current == None:
self.__current.char_data(data)
+ if not self.__setter == None:
+ self.__setter(data)
def __iter__(self):
for document in self.documents:
Modified: incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/scanner.py
URL: http://svn.apache.org/viewvc/incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/scanner.py?rev=672546&r1=672545&r2=672546&view=diff
==============================================================================
--- incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/scanner.py (original)
+++ incubator/rat/main/trunk/scan/src/main/org/apache/rat/scan/scanner.py Sat Jun 28 09:52:38 2008
@@ -66,7 +66,7 @@
return self.__sha
def toXml(self):
- result = "<li><a name='" + join(self.dir, self.name) + "' class='file'>" + self.name + "</a><dl>"
+ result = "<li><a name='" + join(self.dir, self.name) + "' class='resource'>" + self.name + "</a><dl>"
result = result + "<dt>md5</dt><dd class='md5'>" + self.md5() + "</dd>"
result = result + "<dt>sha</dt><dd class='sha'>" + self.sha() + "</dd>"
result = result + "<dt>ripe</dt><dd class='ripe'>" + self.ripe() + "</dd>"
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=672546&r1=672545&r2=672546&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 Sat Jun 28 09:52:38 2008
@@ -18,24 +18,29 @@
import xml.parsers.expat
TEST_BASE_DIR="../../../../../test/org/apache/rat/scan/"
-SCANNER_OUT="""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n<head><title>Audited On NOW/title></head>\n<body>\n<p>\nAudit conducted on <span class=\'created\'>NOW</span> scanned directories\nroot at <span class=\'base-dir\'>../../../../../test/org/apache/rat/scan/scanner/</span>\n</p><p>\nArtifacts by directory:\n</p>\n<ul><li><span class=\'dir\'>../../../../../test/org/apache/rat/scan/scanner/</span><ul><li><a name=\'../../../../../test/org/apache/rat/scan/scanner/HenryV.txt\' class=\'file\'>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=\'../..
/../../../test/org/apache/rat/scan/scanner/RichardIII.txt\' class=\'file\'>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><span class=\'dir\'>../../../../../test/org/apache/rat/scan/scanner/sub</span><ul></ul><li><span class=\'dir\'>../../../../../test/org/apache/rat/scan/scanner/sub/deep</span><ul><li><a name=\'../../../../../test/org/apache/rat/scan/scanner/sub/deep/Hamlet.txt\' class=\'file\'>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\'>307a14094
c28da7a46f894ed10eb732fb4d0f199</dd></dl></li><li><a name=\'../../../../../test/org/apache/rat/scan/scanner/sub/deep/JuliusCaesar\' class=\'file\'>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></ul>\n</body>\n</html>"""
+SCANNER_OUT="""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n<head><title>Audited On NOW/title></head>\n<body>\n<p>\nAudit conducted on <span class=\'created\'>NOW</span> scanned directories\nroot at <span class=\'base-dir\'>../../../../../test/org/apache/rat/scan/scanner/</span>\n</p><p>\nArtifacts by directory:\n</p>\n<ul><li><span class=\'dir\'>../../../../../test/org/apache/rat/scan/scanner/</span><ul><li><a name=\'../../../../../test/org/apache/rat/scan/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=\'.
./../../../../test/org/apache/rat/scan/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><span class=\'dir\'>../../../../../test/org/apache/rat/scan/scanner/sub</span><ul></ul><li><span class=\'dir\'>../../../../../test/org/apache/rat/scan/scanner/sub/deep</span><ul><li><a name=\'../../../../../test/org/apache/rat/scan/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=\'../../../../../test/org/apache/rat/scan/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></ul>\n</body>\n</html>"""
class ReadXmlTestCase(unittest.TestCase):
def testReadOne(self):
- document = diff.Document()
+ document = diff.Document("a directory")
parser = xml.parsers.expat.ParserCreate()
parser.StartElementHandler = document.start_element
parser.EndElementHandler = document.end_element
parser.CharacterDataHandler = document.char_data
parser.Parse("""<?xml version="1.0"?>
- <document dir='a directory' name='a name' >
- <md5>MD5 SUM</md5>
- <sha512>SHA SUM</sha512>
- <ripemd160>RIPEMD</ripemd160>
- </document>""", 1)
+<li><a name='a directory/a name' class='resource'>a name</a>
+<dl>
+<dt>md5</dt>
+<dd class='md5'>MD5 SUM</dd>
+<dt>sha</dt>
+<dd class='sha'>SHA SUM</dd>
+<dt>ripe</dt>
+<dd class='ripe'>RIPEMD</dd>
+</dl>
+</li>
+""", 1)
- self.assertEqual('a directory', document.dir)
self.assertEqual('a name', document.name)
self.assertEqual('MD5 SUM', document.md5)
self.assertEqual('SHA SUM', document.sha)
@@ -43,18 +48,49 @@
def testLoad(self):
documents = diff.Documents()
- documents.load("""<?xml version="1.0"?><audit on='2008-01-22'><documents>
- <document dir='a directory' name='a name' >
- <md5>MD5 SUM</md5>
- <sha512>SHA SUM</sha512>
- <ripemd160>RIPEMD</ripemd160>
- </document>
- <document dir='another directory' name='another name' >
- <md5>ANOTHER MD5 SUM</md5>
- <sha512>ANOTHER SHA SUM</sha512>
- <ripemd160>ANOTHER RIPEMD</ripemd160>
- </document>
- </documents></audit>
+ documents.load("""<!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">
+<head><title>Audited On 2008-01-22</title></head>
+<body>
+<p>
+Audit conducted on <span class='created'>2008-01-22</span> scanned directories
+root at <span class='base-dir'>/www/whatever</span>
+</p><p>
+Artifacts by directory:
+</p>
+<ul>
+<li><span class='dir'>a directory</span>
+<ul>
+<li><a name='a directory/a name' class='resource'>a name</a>
+<dl>
+<dt>md5</dt>
+<dd class='md5'>MD5 SUM</dd>
+<dt>sha</dt>
+<dd class='sha'>SHA SUM</dd>
+<dt>ripe</dt>
+<dd class='ripe'>RIPEMD</dd>
+</dl>
+</li>
+</ul>
+</li>
+<li><span class='dir'>another directory</span>
+<ul>
+<li><a name='another directory/another name' class='resource'>another name</a>
+<dl>
+<dt>md5</dt>
+<dd class='md5'>ANOTHER MD5 SUM</dd>
+<dt>sha</dt>
+<dd class='sha'>ANOTHER SHA SUM</dd>
+<dt>ripe</dt>
+<dd class='ripe'>ANOTHER RIPEMD</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</body>
+</html>
""")
self.assert_(not documents.documents == None)
@@ -158,7 +194,7 @@
self.assertEquals("2ae73f5cfe7943a7d51b46e653948af7f067a6b01e61c827201c8e17b9231956f48b3e8e0da64e822ca9fdeb7a62f5af623406e2dbb9b39a8dabf569d2046402", self.document.sha())
def testXml(self):
- self.assertEquals("<li><a name='../../../../../test/org/apache/rat/scan/Sample.txt' class='file'>Sample.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>", self.document.toXml())
+ self.assertEquals("<li><a name='../../../../../test/org/apache/rat/scan/Sample.txt' class='resource'>Sample.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>", self.document.toXml())
class ScanScannerTest(unittest.TestCase):