Merge pull request #2265 from yurydelendik/fix-test-pdfs

Fixes test pdfs MD5; make server does not download
This commit is contained in:
Brendan Dahl 2012-10-17 09:38:35 -07:00
commit 66b9cc8a47
4 changed files with 37 additions and 22 deletions

View File

@ -751,7 +751,7 @@ target.server = function() {
echo('### Starting local server'); echo('### Starting local server');
cd('test'); cd('test');
exec(PYTHON_BIN + ' -u test.py --port=8888', {async: true}); exec(PYTHON_BIN + ' -u test.py --port=8888 --noDownload', {async: true});
}; };
// //

View File

@ -1 +1 @@
http://web.archive.org/web/20110623114753/http://www.cdc.gov/ncidod/dvbid/westnile/languages/chinese.pdf http://www.cdc.gov/ncidod/dvbid/westnile/languages/chinese.pdf

View File

@ -55,6 +55,10 @@ class TestOptions(OptionParser):
help="The port the HTTP server should listen on.", default=8080) help="The port the HTTP server should listen on.", default=8080)
self.add_option("--unitTest", action="store_true", dest="unitTest", self.add_option("--unitTest", action="store_true", dest="unitTest",
help="Run the unit tests.", default=False) help="Run the unit tests.", default=False)
self.add_option("--noDownload", action="store_true", dest="noDownload",
help="Skips test PDFs downloading.", default=False)
self.add_option("--ignoreDownloadErrors", action="store_true", dest="ignoreDownloadErrors",
help="Ignores errors during test PDFs downloading.", default=False)
self.set_usage(USAGE_EXAMPLE) self.set_usage(USAGE_EXAMPLE)
def verifyOptions(self, options): def verifyOptions(self, options):
@ -380,22 +384,32 @@ def makeBrowserCommands(browserManifestFile):
browsers = [makeBrowserCommand(browser) for browser in json.load(bmf)] browsers = [makeBrowserCommand(browser) for browser in json.load(bmf)]
return browsers return browsers
def downloadLinkedPDFs(manifestList): def downloadLinkedPDF(f):
linkFile = open(f +'.link')
link = linkFile.read()
linkFile.close()
sys.stdout.write('Downloading '+ link +' to '+ f +' ...')
sys.stdout.flush()
response = urllib2.urlopen(link)
with open(f, 'wb') as out:
out.write(response.read())
print 'done'
def downloadLinkedPDFs(manifestList, ignoreDownloadErrors):
for item in manifestList: for item in manifestList:
f, isLink = item['file'], item.get('link', False) f, isLink = item['file'], item.get('link', False)
if isLink and not os.access(f, os.R_OK): if isLink and not os.access(f, os.R_OK):
linkFile = open(f +'.link') try:
link = linkFile.read() downloadLinkedPDF(f)
linkFile.close() except:
print 'ERROR: Unable to download file "' + f + '".'
sys.stdout.write('Downloading '+ link +' to '+ f +' ...') if ignoreDownloadErrors:
sys.stdout.flush() open(f, 'wb').close()
response = urllib2.urlopen(link) else:
raise
with open(f, 'wb') as out:
out.write(response.read())
print 'done'
def verifyPDFs(manifestList): def verifyPDFs(manifestList):
error = False error = False
@ -447,11 +461,12 @@ def setUp(options):
with open(options.manifestFile) as mf: with open(options.manifestFile) as mf:
manifestList = json.load(mf) manifestList = json.load(mf)
downloadLinkedPDFs(manifestList) if not options.noDownload:
downloadLinkedPDFs(manifestList, options.ignoreDownloadErrors)
if not verifyPDFs(manifestList): if not verifyPDFs(manifestList):
print 'Unable to verify the checksum for the files that are used for testing.' print 'Unable to verify the checksum for the files that are used for testing.'
print 'Please re-download the files, or adjust the MD5 checksum in the manifest for the files listed above.\n' print 'Please re-download the files, or adjust the MD5 checksum in the manifest for the files listed above.\n'
for b in testBrowsers: for b in testBrowsers:
State.taskResults[b.name] = { } State.taskResults[b.name] = { }

View File

@ -25,7 +25,7 @@
}, },
{ "id": "intelisa-eq", { "id": "intelisa-eq",
"file": "pdfs/intelisa.pdf", "file": "pdfs/intelisa.pdf",
"md5": "c1444b7ccd935c0577d094297e1a6448", "md5": "cdbcf14d0d260c0b313c566a61b07d9f",
"link": true, "link": true,
"pageLimit": 100, "pageLimit": 100,
"rounds": 1, "rounds": 1,
@ -41,7 +41,7 @@
}, },
{ "id": "shavian-load", { "id": "shavian-load",
"file": "pdfs/shavian.pdf", "file": "pdfs/shavian.pdf",
"md5": "79253352f48b55b7fa28a2586875d8b7", "md5": "40ef97a120250b149c4ded383ca328ec",
"link": true, "link": true,
"rounds": 1, "rounds": 1,
"type": "load" "type": "load"
@ -199,7 +199,7 @@
}, },
{ "id": "fips197", { "id": "fips197",
"file": "pdfs/fips197.pdf", "file": "pdfs/fips197.pdf",
"md5": "374800cf78ce4b4abd02cd10a856b57f", "md5": "4742c3f470cd8c4686a0dbb3da808b71",
"link": true, "link": true,
"rounds": 1, "rounds": 1,
"type": "eq" "type": "eq"