Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: test/promises-aplus/testcfg.py

Issue 297663003: Stop using urllib.urlretrieve() directly. (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | test/test262/testcfg.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 the V8 project authors. All rights reserved. 1 # Copyright 2014 the V8 project authors. All rights reserved.
2 # Redistribution and use in source and binary forms, with or without 2 # Redistribution and use in source and binary forms, with or without
3 # modification, are permitted provided that the following conditions are 3 # modification, are permitted provided that the following conditions are
4 # met: 4 # met:
5 # 5 #
6 # * Redistributions of source code must retain the above copyright 6 # * Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer. 7 # notice, this list of conditions and the following disclaimer.
8 # * Redistributions in binary form must reproduce the above 8 # * Redistributions in binary form must reproduce the above
9 # copyright notice, this list of conditions and the following 9 # copyright notice, this list of conditions and the following
10 # disclaimer in the documentation and/or other materials provided 10 # disclaimer in the documentation and/or other materials provided
(...skipping 13 matching lines...) Expand all
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 28
29 import hashlib 29 import hashlib
30 import os 30 import os
31 import shutil 31 import shutil
32 import sys 32 import sys
33 import tarfile 33 import tarfile
34 import urllib
35 34
36 from testrunner.local import testsuite 35 from testrunner.local import testsuite
36 from testrunner.local import utils
37 from testrunner.objects import testcase 37 from testrunner.objects import testcase
38 38
39 39
40 SINON_TAG = '1.7.3' 40 SINON_TAG = '1.7.3'
41 SINON_NAME = 'sinon' 41 SINON_NAME = 'sinon'
42 SINON_FILENAME = 'sinon.js' 42 SINON_FILENAME = 'sinon.js'
43 SINON_URL = 'http://sinonjs.org/releases/sinon-' + SINON_TAG + '.js' 43 SINON_URL = 'http://sinonjs.org/releases/sinon-' + SINON_TAG + '.js'
44 SINON_HASH = 'b7ab4dd9a1a2cf0460784af3728ad15caf4bbea923f680c5abde5c8332f35984' 44 SINON_HASH = 'b7ab4dd9a1a2cf0460784af3728ad15caf4bbea923f680c5abde5c8332f35984'
45 45
46 TEST_TAG = '2.0.3' 46 TEST_TAG = '2.0.3'
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 if output.exit_code != 0: 95 if output.exit_code != 0:
96 return True 96 return True
97 return not 'All tests have run.' in output.stdout or \ 97 return not 'All tests have run.' in output.stdout or \
98 'FAIL:' in output.stdout 98 'FAIL:' in output.stdout
99 99
100 def DownloadTestData(self): 100 def DownloadTestData(self):
101 archive = os.path.join(self.root, TEST_ARCHIVE) 101 archive = os.path.join(self.root, TEST_ARCHIVE)
102 directory = os.path.join(self.root, TEST_NAME) 102 directory = os.path.join(self.root, TEST_NAME)
103 if not os.path.exists(archive): 103 if not os.path.exists(archive):
104 print('Downloading {0} from {1} ...'.format(TEST_NAME, TEST_URL)) 104 print('Downloading {0} from {1} ...'.format(TEST_NAME, TEST_URL))
105 urllib.urlretrieve(TEST_URL, archive) 105 utils.URLRetrieve(TEST_URL, archive)
106 if os.path.exists(directory): 106 if os.path.exists(directory):
107 shutil.rmtree(directory) 107 shutil.rmtree(directory)
108 108
109 if not os.path.exists(directory): 109 if not os.path.exists(directory):
110 print('Extracting {0} ...'.format(TEST_ARCHIVE)) 110 print('Extracting {0} ...'.format(TEST_ARCHIVE))
111 hash = hashlib.sha256() 111 hash = hashlib.sha256()
112 with open(archive, 'rb') as f: 112 with open(archive, 'rb') as f:
113 for chunk in iter(lambda: f.read(8192), ''): 113 for chunk in iter(lambda: f.read(8192), ''):
114 hash.update(chunk) 114 hash.update(chunk)
115 if hash.hexdigest() != TEST_ARCHIVE_HASH: 115 if hash.hexdigest() != TEST_ARCHIVE_HASH:
116 os.remove(archive) 116 os.remove(archive)
117 raise Exception('Hash mismatch of test data file') 117 raise Exception('Hash mismatch of test data file')
118 archive = tarfile.open(archive, 'r:gz') 118 archive = tarfile.open(archive, 'r:gz')
119 if sys.platform in ('win32', 'cygwin'): 119 if sys.platform in ('win32', 'cygwin'):
120 # Magic incantation to allow longer path names on Windows. 120 # Magic incantation to allow longer path names on Windows.
121 archive.extractall(u'\\\\?\\%s' % self.root) 121 archive.extractall(u'\\\\?\\%s' % self.root)
122 else: 122 else:
123 archive.extractall(self.root) 123 archive.extractall(self.root)
124 shutil.move(os.path.join(self.root, TEST_ARCHIVE_TOP), directory) 124 shutil.move(os.path.join(self.root, TEST_ARCHIVE_TOP), directory)
125 125
126 def DownloadSinon(self): 126 def DownloadSinon(self):
127 directory = os.path.join(self.root, SINON_NAME) 127 directory = os.path.join(self.root, SINON_NAME)
128 if not os.path.exists(directory): 128 if not os.path.exists(directory):
129 os.mkdir(directory) 129 os.mkdir(directory)
130 path = os.path.join(directory, SINON_FILENAME) 130 path = os.path.join(directory, SINON_FILENAME)
131 if not os.path.exists(path): 131 if not os.path.exists(path):
132 urllib.urlretrieve(SINON_URL, path) 132 utils.URLRetrieve(SINON_URL, path)
133 hash = hashlib.sha256() 133 hash = hashlib.sha256()
134 with open(path, 'rb') as f: 134 with open(path, 'rb') as f:
135 for chunk in iter(lambda: f.read(8192), ''): 135 for chunk in iter(lambda: f.read(8192), ''):
136 hash.update(chunk) 136 hash.update(chunk)
137 if hash.hexdigest() != SINON_HASH: 137 if hash.hexdigest() != SINON_HASH:
138 os.remove(path) 138 os.remove(path)
139 raise Exception('Hash mismatch of test data file') 139 raise Exception('Hash mismatch of test data file')
140 140
141 def DownloadData(self): 141 def DownloadData(self):
142 self.DownloadTestData() 142 self.DownloadTestData()
143 self.DownloadSinon() 143 self.DownloadSinon()
144 144
145 145
146 def GetSuite(name, root): 146 def GetSuite(name, root):
147 return PromiseAplusTestSuite(name, root) 147 return PromiseAplusTestSuite(name, root)
OLDNEW
« no previous file with comments | « no previous file | test/test262/testcfg.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698