Skip to content

Commit a436fd1

Browse files
committed
Moved the test files to OSF
1 parent 34cb131 commit a436fd1

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

tract_querier/tests/datasets.py

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,32 @@
22
import os
33
from os import path
44
import tempfile
5-
from six.moves import urllib
5+
import urllib.request
6+
67

78
import unittest
89

910

1011
FILES = {
1112
'tract_file': (
12-
'http://midas.kitware.com/bitstream/view/17631',
13+
'https://osf.io/ugyqa/files/osfstorage/6788df92de6b5942fae241be',
1314
'IIT3mean_left_hemisphere_small.trk',
1415
'\xe7\xec\xfd+\xd2n\xff\x96\xae\xb4\xdf+\x194\xdf\x81'
1516
),
1617
'atlas_file': (
17-
'http://midas.kitware.com/bitstream/view/17622',
18+
'https://osf.io/ugyqa/files/osfstorage/6788df9090f7678e2caeae01',
1819
'IIT3mean_desikan_2009.nii.gz',
1920
'vx\x13\xbaE\x1dR\t\xcd\xc9EF\x17\xa66\xb7'
2021
),
2122
'query_uf_file': (
22-
'http://midas.kitware.com/bitstream/view/17627',
23+
'https://osf.io/ugyqa/files/osfstorage/6788df9781590325003424e1',
2324
'wmql_2_uf.qry',
2425
'\\+R\x8c<B#\xea\xfc\x9aE\xbd\xb0(\xbdn'
2526
)
2627
}
2728

2829

2930
class TestDataSet(unittest.TestCase):
30-
31-
@unittest.skip("temporarily disabled")
3231
def __init__(self):
3332
self.dirname = path.join(
3433
tempfile.gettempdir(),
@@ -40,22 +39,31 @@ def __init__(self):
4039
if not path.exists(self.dirname):
4140
os.mkdir(self.dirname)
4241

43-
for k, v in FILES.items():
44-
dst_filename = path.join(self.dirname, v[1])
45-
42+
for k, (url, filename, md5) in FILES.items():
43+
dst_filename = path.join(self.dirname, filename)
4644
if (
4745
not path.exists(dst_filename) or
48-
hashlib.md5(open(dst_filename).read()).digest() != v[2]
46+
hashlib.md5(open(dst_filename).read().encode('utf-8')).digest() != md5
4947
):
50-
dl_file = urllib.request.urlopen(v[0])
51-
dst_file = open(dst_filename, 'wb')
52-
dst_file.write(dl_file.read())
53-
dst_file.close()
54-
48+
request = urllib.request.Request(url)
49+
try:
50+
response = urllib.request.urlopen(request)
51+
except urllib.error.HTTPError as e:
52+
if e.status not in (307, 308):
53+
raise
54+
redirected_url = urllib.parse.urljoin(url, e.headers['Location'])
55+
response = urllib.request.urlopen(redirected_url)
56+
with open(dst_filename, 'wb') as out_file:
57+
while True:
58+
chunk = response.read(8192) # Read 8 KB at a time
59+
if not chunk:
60+
break
61+
out_file.write(chunk)
5562
if (
56-
hashlib.md5(open(dst_filename).read()).digest() != v[2]
63+
hashlib.md5(open(dst_filename).read().encode('utf-8')).digest() != md5
5764
):
58-
raise IOError('File %s url %s was not properly downloaded' % (v[1], v[0]))
65+
continue
66+
raise IOError('File %s url %s was not properly downloaded' % (filename, url))
5967

6068
self.files[k] = dst_filename
6169

0 commit comments

Comments
 (0)