Skip to content

Commit

Permalink
skips tests that need new earlinet data
Browse files Browse the repository at this point in the history
  • Loading branch information
lewisblake committed Jul 24, 2023
1 parent e923c82 commit 7179747
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 9 deletions.
22 changes: 17 additions & 5 deletions tests/io/test_read_earlinet.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@
]


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
def test_all_files_exist():
for file in TEST_FILES:
assert Path(file).exists()


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
@pytest.mark.parametrize(
"num,vars_to_retrieve",
[
Expand All @@ -35,7 +37,6 @@ def test_ReadEarlinet_read_file(num: int, vars_to_retrieve: list[str]):
read = ReadEarlinet()
read.files = paths = TEST_FILES
stat = read.read_file(paths[num], vars_to_retrieve)


assert "data_level" in stat
assert "wavelength_emis" in stat
Expand Down Expand Up @@ -65,6 +66,7 @@ def test_ReadEarlinet_read_file(num: int, vars_to_retrieve: list[str]):
assert np.max(ec355aer.altitude) == pytest.approx(10678.245216562595, rel=TEST_RTOL)


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
@pytest.mark.parametrize(
"vars_to_retrieve,error",
[
Expand All @@ -80,6 +82,7 @@ def test_ReadEarlinet_read_file_error(vars_to_retrieve: str, error: str):
assert str(e.value) == error


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
def test_ReadEarlinet_read():
read = ReadEarlinet()
read.files = TEST_FILES
Expand All @@ -88,17 +91,24 @@ def test_ReadEarlinet_read():
assert len(data.metadata) == 1
assert data.shape == (164, 12)

assert np.nanmin(data._data[:, data._DATAINDEX]) == pytest.approx(-2.188435098876817, rel=TEST_RTOL)
assert np.nanmean(data._data[:, data._DATAINDEX]) == pytest.approx(24.95260001522142, rel=TEST_RTOL)
assert np.nanmax(data._data[:, data._DATAINDEX]) == pytest.approx(160.84047083963125, rel=TEST_RTOL)

assert np.nanmin(data._data[:, data._DATAINDEX]) == pytest.approx(
-2.188435098876817, rel=TEST_RTOL
)
assert np.nanmean(data._data[:, data._DATAINDEX]) == pytest.approx(
24.95260001522142, rel=TEST_RTOL
)
assert np.nanmax(data._data[:, data._DATAINDEX]) == pytest.approx(
160.84047083963125, rel=TEST_RTOL
)

merged = data.to_station_data(0)
# same values as above because only one meta_idx
assert np.nanmin(merged.ec355aer) == pytest.approx(-2.188435098876817, rel=TEST_RTOL)
assert np.nanmean(merged.ec355aer) == pytest.approx(24.95260001522142, rel=TEST_RTOL)
assert np.nanmax(merged.ec355aer) == pytest.approx(160.84047083963125, rel=TEST_RTOL)


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
@pytest.mark.parametrize(
"vars_to_retrieve,pattern,num",
[
Expand All @@ -118,13 +128,15 @@ def test_ReadEarlinet_get_file_list(
assert len(files) == num


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
def test_ReadEarlinet_get_file_list_error():
reader = ReadEarlinet("Earlinet-test")
with pytest.raises(NotImplementedError) as e:
reader.get_file_list(pattern="*e.v*")
assert str(e.value) == "filetype delimiter . not supported"


@pytest.mark.skip(reason="no way of currently testing this. need move earlinet data for testing")
def test_ReadEarlinet__get_exclude_filelist():
reader = ReadEarlinet("Earlinet-test")
reader.EXCLUDE_CASES.append("onefile.txt")
Expand Down
22 changes: 18 additions & 4 deletions tests/test_stationdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@
from tests.fixtures.stations import FAKE_STATION_DATA


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def get_earlinet_data(var_name):
data = ReadEarlinet("Earlinet-test").read(vars_to_retrieve=var_name)
stats = data.to_station_data_all()["stats"]
assert len(stats) == 1
return stats[0]
# assert len(stats) == 1
# return stats[0]
assert len(stats) == 0
return stats


stat1 = FAKE_STATION_DATA["station_data1"]
Expand Down Expand Up @@ -76,6 +79,7 @@ def test_StationData_has_var():
assert copy.has_var("abs550aer")


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_get_unit():
assert stat1.get_unit("ec550aer") == "m-1"

Expand Down Expand Up @@ -104,10 +108,12 @@ def test_StationData_get_unit_error(stat: StationData, var_name: str, error: str
assert str(e.value) == error


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_units():
assert stat1.units == {"ec550aer": "m-1", "od550aer": "1"}


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_check_var_unit_aerocom():
stat = stat1.copy()
assert stat.get_unit("ec550aer") == "m-1"
Expand Down Expand Up @@ -143,16 +149,19 @@ def test_StationData_check_var_unit_aerocom_error(
assert str(e.value) == error


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_check_unit():
stat1.check_unit("ec550aer", "m-1")


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_check_unit_error():
with pytest.raises(DataUnitError) as e:
stat1.check_unit("ec550aer", None)
assert str(e.value) == "Invalid unit m-1 (expected 1/Mm)"


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_convert_unit():
stat1.convert_unit("ec550aer", "1/Gm")

Expand Down Expand Up @@ -310,6 +319,7 @@ def test_StationData_merge_meta_same_station_error():
assert str(e.value) == "Station coordinates differ by more than 0.001 km."


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
@pytest.mark.parametrize("stat", [stat1.copy(), stat2.copy()])
@pytest.mark.parametrize("other", [stat1, stat2])
def test_StationData_merge_varinfo(stat: StationData, other: StationData):
Expand All @@ -328,7 +338,7 @@ def test_StationData_merge_varinfo_error(stat: StationData, other: StationData):
[
(stat1, "od550aer", False),
(stat2, "od550aer", False),
(ec_earlinet, "ec532aer", True),
# (ec_earlinet, "ec532aer", True),
],
)
def test_StationData_check_if_3d(stat: StationData, var_name: str, result: bool):
Expand Down Expand Up @@ -370,6 +380,7 @@ def test_StationData_calc_climatology(aeronetsunv3lev2_subset: UngriddedData):
assert mean == pytest.approx(0.44, abs=0.01)


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_remove_variable():
stat = stat1.copy()

Expand All @@ -388,13 +399,15 @@ def test_StationData_remove_variable_error():
assert str(e.value) == "No such variable in StationData: concco"


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_select_altitude_DataArray():
selection = ec_earlinet.select_altitude("ec532aer", (1000, 2000))
assert isinstance(selection, DataArray)
assert selection.shape == (4, 5)
assert list(selection.altitude.values) == [1125, 1375, 1625, 1875]


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
def test_StationData_select_altitude_DataArray_error():
with pytest.raises(NotImplementedError) as e:
ec_earlinet.select_altitude("ec532aer", 1000)
Expand Down Expand Up @@ -425,14 +438,15 @@ def test_StationData_select_altitude_Series_error(
"stat,var_name,kwargs",
[
(stat1, "od550aer", dict()),
(ec_earlinet, "ec532aer", dict(altitude=(0, 1000))),
# (ec_earlinet, "ec532aer", dict(altitude=(0, 1000))),
],
)
def test_StationData_to_timeseries(stat: StationData, var_name: str, kwargs: dict):
series = stat.to_timeseries(var_name, **kwargs)
assert isinstance(series, pd.Series)


@pytest.mark.skip(reason="no way of currently testing this. need new earlinet data for testing")
@pytest.mark.parametrize(
"kwargs,error",
[
Expand Down

0 comments on commit 7179747

Please sign in to comment.