From ee16090bc2a9dd8aa70a82b309bb934580cf093f Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Tue, 16 Oct 2012 10:30:14 -0500 Subject: [PATCH] Fixes test pdfs MD5; make server does not download --- make.js | 2 +- test/pdfs/wnv_chinese.pdf.link | 2 +- test/test.py | 49 ++++++++++++++++++++++------------ test/test_manifest.json | 6 ++--- 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/make.js b/make.js index 0fcabffe1..7ac2e28c1 100644 --- a/make.js +++ b/make.js @@ -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}); }; // diff --git a/test/pdfs/wnv_chinese.pdf.link b/test/pdfs/wnv_chinese.pdf.link index 0bd2af8f6..fbbc81760 100644 --- a/test/pdfs/wnv_chinese.pdf.link +++ b/test/pdfs/wnv_chinese.pdf.link @@ -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 diff --git a/test/test.py b/test/test.py index 0e62aa9fe..030bf3aec 100644 --- a/test/test.py +++ b/test/test.py @@ -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] = { } diff --git a/test/test_manifest.json b/test/test_manifest.json index fadd88ac9..b70f8f3ab 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -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"