Skip to content

Commit b7d34f7

Browse files
add unit tests for ValidatedFilterDict
1 parent 9430250 commit b7d34f7

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

rdtools/test/analysis_chains_test.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from rdtools import TrendAnalysis, normalization, filtering
22
from conftest import assert_isinstance, assert_warnings
3+
from rdtools.analysis_chains import ValidatedFilterDict
34
import pytest
45
import pvlib
56
import pandas as pd
@@ -740,3 +741,45 @@ def test_plot_degradation_timeseries(sensor_analysis, clearsky_analysis):
740741
assert_isinstance(
741742
clearsky_analysis.plot_degradation_timeseries("clearsky"), plt.Figure
742743
)
744+
745+
746+
def test_validated_filter_dict_initialization():
747+
valid_keys = ["key1", "key2"]
748+
filter_dict = ValidatedFilterDict(valid_keys, key1="value1", key2="value2")
749+
assert filter_dict["key1"] == "value1"
750+
assert filter_dict["key2"] == "value2"
751+
752+
753+
def test_validated_filter_dict_invalid_key_initialization():
754+
valid_keys = ["key1", "key2"]
755+
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."):
756+
ValidatedFilterDict(valid_keys, key1="value1", key3="value3")
757+
758+
759+
def test_validated_filter_dict_setitem():
760+
valid_keys = ["key1", "key2"]
761+
filter_dict = ValidatedFilterDict(valid_keys)
762+
filter_dict["key1"] = "value1"
763+
assert filter_dict["key1"] == "value1"
764+
765+
766+
def test_validated_filter_dict_setitem_invalid_key():
767+
valid_keys = ["key1", "key2"]
768+
filter_dict = ValidatedFilterDict(valid_keys)
769+
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."):
770+
filter_dict["key3"] = "value3"
771+
772+
773+
def test_validated_filter_dict_update():
774+
valid_keys = ["key1", "key2"]
775+
filter_dict = ValidatedFilterDict(valid_keys)
776+
filter_dict.update({"key1": "value1", "key2": "value2"})
777+
assert filter_dict["key1"] == "value1"
778+
assert filter_dict["key2"] == "value2"
779+
780+
781+
def test_validated_filter_dict_update_invalid_key():
782+
valid_keys = ["key1", "key2"]
783+
filter_dict = ValidatedFilterDict(valid_keys)
784+
with pytest.raises(KeyError, match="Key 'key3' is not a valid filter parameters."):
785+
filter_dict.update({"key1": "value1", "key3": "value3"})

0 commit comments

Comments
 (0)