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');
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)
self.add_option("--unitTest", action="store_true", dest="unitTest",
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)
def verifyOptions(self, options):
@ -380,22 +384,32 @@ def makeBrowserCommands(browserManifestFile):
browsers = [makeBrowserCommand(browser) for browser in json.load(bmf)]
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:
f, isLink = item['file'], item.get('link', False)
if isLink and not os.access(f, os.R_OK):
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'
try:
downloadLinkedPDF(f)
except:
print 'ERROR: Unable to download file "' + f + '".'
if ignoreDownloadErrors:
open(f, 'wb').close()
else:
raise
def verifyPDFs(manifestList):
error = False
@ -447,11 +461,12 @@ def setUp(options):
with open(options.manifestFile) as mf:
manifestList = json.load(mf)
downloadLinkedPDFs(manifestList)
if not options.noDownload:
downloadLinkedPDFs(manifestList, options.ignoreDownloadErrors)
if not verifyPDFs(manifestList):
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'
if not verifyPDFs(manifestList):
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'
for b in testBrowsers:
State.taskResults[b.name] = { }

View File

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