Skip to content

Commit

Permalink
[Archive] Fixes bug #110, returns None instead of crash when there is…
Browse files Browse the repository at this point in the history
… no file on server

Signed-off-by: Alexis Jeandet <[email protected]>
  • Loading branch information
jeandet committed Nov 28, 2023
1 parent bc87314 commit 329c368
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,21 @@


@CacheCall(cache_retention=timedelta(hours=24), is_pure=True)
def _read_cdf(url: str, variable: str) -> SpeasyVariable:
def _read_cdf(url: Optional[str], variable: str) -> Optional[SpeasyVariable]:
if url is None:
return None
return load_variable(file=url, variable=variable)


def _build_url(url_pattern: str, date: datetime, use_file_list=False) -> str:
def _build_url(url_pattern: str, date: datetime, use_file_list=False) -> Optional[str]:
base_ulr = url_pattern.format(Y=date.year, M=date.month, D=date.day)
if not use_file_list:
return base_ulr
folder_url, rx = base_ulr.rsplit('/', 1)
return '/'.join((folder_url, sorted(list_files(folder_url, re.compile(rx)))[-1]))
files = sorted(list_files(folder_url, re.compile(rx)))
if len(files):
return '/'.join((folder_url, files[-1]))
return None


def spilt_range(split_frequency: str, start_time: AnyDateTimeType, stop_time: AnyDateTimeType):
Expand Down
33 changes: 30 additions & 3 deletions tests/test_direct_archive_downloader.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,36 @@ def test_get_data(self, product, start, stop):
v = spz.get_data(product, start, stop)
self.assertIsNotNone(v)

def test_get_data_with_no_file(self):
v = spz.get_data(spz.inventories.tree.archive.cdpp.THEMIS.THA.L2.tha_scm.tha_scf_gse, "2018-03-10",
"2018-03-11")
@data(
("archive/cdpp/THEMIS/THA/L2/tha_scm/tha_scf_gse",
"2018-03-10",
"2018-03-11"),
("archive/cda/MMS/MMS1/FGM/SRVY/mms1_fgm_srvy_l2/mms1_fgm_b_bcs_srvy_l2",
"2019-08-19",
"2019-08-25"),
)
@unpack
def test_get_data_with_no_file(self, product, start, stop):
v = spz.get_data(product, start, stop)
self.assertIsNone(v)

@data(
("archive/cda/MMS/MMS1/FGM/SRVY/mms1_fgm_srvy_l2/mms1_fgm_b_bcs_srvy_l2",
"2010-08-19",
"2010-08-25"),
("archive/cdpp/THEMIS/THA/L2/tha_scm/tha_scf_gse",
"2030-03-10",
"2030-03-11"),
("archive/cda/MMS/MMS1/FPI/BURST/MOMS/mms1_fpi_brst_l2_des_moms/mms1_des_temppara_brst",
"2006-02-28",
"2006-03-02"),
("archive/cda/MMS/MMS1/FPI/FAST/MOMS/mms1_fpi_fast_l2_des_moms/mms1_des_energyspectr_omni_fast",
"2010-01-30T10",
"2010-02-01T12"),
)
@unpack
def test_get_data_outside_of_range(self, product, start, stop):
v = spz.get_data(product, start, stop)
self.assertIsNone(v)

def test_axes_merging_across_files(self):
Expand Down

0 comments on commit 329c368

Please sign in to comment.