-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ENH: Add test of dunder accessors to Pydantic iterable RootModels
- Loading branch information
1 parent
616b740
commit 5bad7aa
Showing
3 changed files
with
82 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
"""Explicitly test all dunder methods.""" | ||
|
||
from fmu.dataio._model.fields import Parameters | ||
from fmu.dataio._model.global_configuration import Stratigraphy, StratigraphyElement | ||
|
||
# -------------------------------------------------------------------------------------- | ||
# Parameters | ||
# -------------------------------------------------------------------------------------- | ||
|
||
testset_stratigraphy = Stratigraphy( | ||
root={ | ||
"TopStratUnit1": StratigraphyElement( | ||
name="Stratigraphic Unit 1", | ||
stratigraphic=True, | ||
alias=["TopSU1", "TopLayer1"], | ||
), | ||
"TopStratUnit2": StratigraphyElement( | ||
name="Stratigraphic Unit 2", | ||
stratigraphic=True, | ||
alias=["TopSU2", "TopLayer2"], | ||
), | ||
"TopStratUnit3": StratigraphyElement( | ||
name="Stratigraphic Unit 3", | ||
stratigraphic=True, | ||
alias=["TopSU3", "TopLayer3"], | ||
), | ||
} | ||
) | ||
|
||
|
||
def test_stratigraphy_dunder_iter(): | ||
try: | ||
count = 0 | ||
for item in testset_stratigraphy: | ||
count += 1 | ||
assert count == 3 | ||
except Exception: | ||
assert False, "Stratigraphy class does not have __iter__()" | ||
|
||
|
||
def test_stratigraphy_dunder_getitem(): | ||
try: | ||
testset_stratigraphy["TopStratUnit2"] | ||
except Exception: | ||
assert False, "Stratigraphy class does not have __getitem__()" | ||
|
||
|
||
# -------------------------------------------------------------------------------------- | ||
# Parameters | ||
# -------------------------------------------------------------------------------------- | ||
|
||
testset_params = Parameters( | ||
root={ | ||
"p1": 42, | ||
"p2": "less nested", | ||
"p3": Parameters( | ||
root={ | ||
"p3_1": 42.3, | ||
"p3_2": "nested", | ||
} | ||
), | ||
} | ||
) | ||
|
||
|
||
def test_parameters_dunder_iter(): | ||
try: | ||
count = 0 | ||
for item in testset_params: | ||
count += 1 | ||
assert count == 3 | ||
except Exception: | ||
assert False, "Parameters class does not have __iter__()" | ||
|
||
|
||
def test_parameters_dunder_getitem(): | ||
try: | ||
testset_params["p2"] | ||
except Exception: | ||
assert False, "Parameters class does not have __getitem__()" |