Skip to content

Commit 8189da4

Browse files
authored
Merge pull request #111 from jgieseler/main
Catch ReadTimeout error when downloading Wind/3DP data from UBerkeley server
2 parents c90d44f + 6692f9d commit 8189da4

2 files changed

Lines changed: 25 additions & 4 deletions

File tree

seppy/loader/wind.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,16 +113,16 @@ def wind3dp_single_download(file, path=None):
113113

114114
data = file.split('_')[1] # e.g. 'sfsp'
115115
year = file.split('_')[3][:4]
116-
base = f"https://sprg.ssl.berkeley.edu/wind3dp/data/wi/3dp/{data}/{year}/"
116+
base = f"https://sprg.ssl.berkeley.edu/wind3dp/data/wi/3dp/{data}/{year}"
117117

118118
url = base+'/'+file
119119

120120
try:
121121
downloaded_file = pooch.retrieve(url=url, known_hash=None, fname=file, path=path, progressbar=True)
122122
except ModuleNotFoundError:
123123
downloaded_file = pooch.retrieve(url=url, known_hash=None, fname=file, path=path, progressbar=False)
124-
except requests.HTTPError:
125-
print(f'No corresponding data found at {url}')
124+
except (requests.ReadTimeout, requests.Timeout) as e:
125+
print(f'No corresponding data found at {url}: {e}')
126126
downloaded_file = []
127127
print('')
128128

seppy/tests/test_loader.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import numpy as np
33
import pandas as pd
44
import pytest
5+
import requests
56
from astropy.utils.data import get_pkg_data_filename
67
from pathlib import Path
78
from seppy.loader.bepi import bepi_sixsp_l3_loader
@@ -10,7 +11,8 @@
1011
from seppy.loader.soho import soho_load
1112
from seppy.loader.solo import mag_load
1213
from seppy.loader.stereo import stereo_load
13-
from seppy.loader.wind import wind3dp_load
14+
from seppy.loader.wind import wind3dp_load, wind3dp_single_download
15+
from unittest.mock import patch
1416

1517

1618
def test_bepi_sixs_load_online():
@@ -237,3 +239,22 @@ def test_wind3dp_load_offline():
237239
assert meta['FLUX_LABELS'].flatten()[0] == 'ElecNoFlux_Ch1_Often~27keV '
238240
# Check that fillvals are replaced by NaN
239241
assert np.sum(np.isnan(df['FLUX_0'])) == 352
242+
243+
244+
def test_wind3dp_single_download_exceptions():
245+
"""
246+
Test wind3dp_single_download with mocked request exceptions.
247+
"""
248+
wind_file = 'wi_sfsp_3dp_20220602_v01.cdf'
249+
250+
with patch('requests.get', side_effect=requests.exceptions.ReadTimeout):
251+
downloaded_file = wind3dp_single_download(wind_file)
252+
assert downloaded_file == []
253+
254+
with patch('requests.get', side_effect=requests.exceptions.Timeout):
255+
downloaded_file = wind3dp_single_download(wind_file)
256+
assert downloaded_file == []
257+
258+
with patch('requests.get', side_effect=requests.exceptions.HTTPError):
259+
with pytest.raises(requests.exceptions.HTTPError):
260+
downloaded_file = wind3dp_single_download(wind_file)

0 commit comments

Comments
 (0)