Skip to content

Commit ad2fe15

Browse files
test valid and invalid filter parameters
1 parent b7d34f7 commit ad2fe15

File tree

2 files changed

+51
-4
lines changed

2 files changed

+51
-4
lines changed

rdtools/analysis_chains.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,7 @@ def plot_degradation_timeseries(self, case, rolling_days=365, **kwargs):
12671267
class ValidatedFilterDict(dict):
12681268
def __init__(self, valid_keys, *args, **kwargs):
12691269
self.valid_keys = valid_keys
1270-
self._err_msg = "Key '{0}' is not a valid filter parameters."
1270+
self._err_msg = "Key '{0}' is not a valid filter parameter."
12711271
super(ValidatedFilterDict, self).__init__(*args, **kwargs)
12721272
self._validate_keys()
12731273

rdtools/test/analysis_chains_test.py

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ def test_validated_filter_dict_initialization():
752752

753753
def test_validated_filter_dict_invalid_key_initialization():
754754
valid_keys = ["key1", "key2"]
755-
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."):
755+
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameter."):
756756
ValidatedFilterDict(valid_keys, key1="value1", key3="value3")
757757

758758

@@ -766,7 +766,7 @@ def test_validated_filter_dict_setitem():
766766
def test_validated_filter_dict_setitem_invalid_key():
767767
valid_keys = ["key1", "key2"]
768768
filter_dict = ValidatedFilterDict(valid_keys)
769-
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."):
769+
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameter."):
770770
filter_dict["key3"] = "value3"
771771

772772

@@ -781,5 +781,52 @@ def test_validated_filter_dict_update():
781781
def test_validated_filter_dict_update_invalid_key():
782782
valid_keys = ["key1", "key2"]
783783
filter_dict = ValidatedFilterDict(valid_keys)
784-
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."):
784+
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameter."):
785785
filter_dict.update({"key1": "value1", "key3": "value3"})
786+
787+
788+
@pytest.mark.parametrize(
789+
"filter_param",
790+
[
791+
"normalized_filter",
792+
"poa_filter",
793+
"tcell_filter",
794+
"clip_filter",
795+
"hour_angle_filter",
796+
"clearsky_filter",
797+
"sensor_clearsky_filter",
798+
"ad_hoc_filter",
799+
],
800+
)
801+
def test_valid_filter_params(sensor_analysis, filter_param):
802+
sensor_analysis.filter_params[filter_param] = {}
803+
assert filter_param in sensor_analysis.filter_params
804+
805+
806+
def test_invalid_filter_params(sensor_analysis, filter_param="invalid_filter"):
807+
with pytest.raises(KeyError, match=f"Key '{filter_param}' is not a valid filter parameter."):
808+
sensor_analysis.filter_params[filter_param] = {}
809+
810+
811+
@pytest.mark.parametrize(
812+
"filter_param_aggregated",
813+
[
814+
"two_way_window_filter",
815+
"insolation_filter",
816+
"hampel_filter",
817+
"directional_tukey_filter",
818+
"ad_hoc_filter",
819+
],
820+
)
821+
def test_valid_filter_params_aggregated(sensor_analysis, filter_param_aggregated):
822+
sensor_analysis.filter_params_aggregated[filter_param_aggregated] = {}
823+
assert filter_param_aggregated in sensor_analysis.filter_params_aggregated
824+
825+
826+
def test_invalid_filter_params_aggregated(
827+
sensor_analysis, filter_param_aggregated="invalid_filter"
828+
):
829+
with pytest.raises(
830+
KeyError, match=f"Key '{filter_param_aggregated}' is not a valid filter parameter."
831+
):
832+
sensor_analysis.filter_params_aggregated[filter_param_aggregated] = {}

0 commit comments

Comments
 (0)