Skip to content

Commit eba9a5a

Browse files
add emmet core version check test
1 parent 2f266b9 commit eba9a5a

2 files changed

Lines changed: 29 additions & 4 deletions

File tree

mp_api/client/core/utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ def _compare_emmet_ver(
2424
_compare_emmet_ver("0.84.0rc0","<") returns
2525
emmet.core.__version__ < "0.84.0rc0"
2626
27+
This function may not be used anywhere in the client, but it should
28+
be preserved for future use, in case some degree of backwards
29+
compatibility or feature buy-in is needed.
30+
2731
Parameters
2832
-----------
2933
ref_version : str

tests/core/test_utils.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,36 @@
11
"""Test client core utilities."""
22

3+
from packaging.version import parse as parse_version
34
import pytest
45

56
from emmet.core.mpid import MPID, AlphaID
67

7-
from mp_api.client.core.utils import validate_ids
8-
from mp_api.client.core.settings import MAPIClientSettings
8+
9+
def test_emmet_core_version_checks(monkeypatch : pytest.MonkeyPatch):
10+
11+
ref_ver = (1,2,"3rc5")
12+
ref_ver_str = ".".join(str(x) for x in ref_ver)
13+
14+
import emmet.core
15+
monkeypatch.setattr(emmet.core,"__version__",ref_ver_str)
16+
from mp_api.client.core.utils import _compare_emmet_ver
17+
18+
assert _compare_emmet_ver(ref_ver_str,"==")
19+
20+
next_ver = ".".join(str(x) for x in [ref_ver[0] + 1,*ref_ver[1:]])
21+
assert _compare_emmet_ver(next_ver,"<")
22+
assert _compare_emmet_ver(next_ver,"<=")
23+
24+
prior_ver = ".".join(str(x) for x in [ref_ver[0],ref_ver[1]-1,*ref_ver[2:]])
25+
assert _compare_emmet_ver(prior_ver,">")
26+
assert _compare_emmet_ver(prior_ver,">=")
927

1028
def test_id_validation():
11-
max_num_idxs = MAPIClientSettings().MAX_LIST_LENGTH
1229

30+
from mp_api.client.core.utils import validate_ids
31+
from mp_api.client.core.settings import MAPIClientSettings
32+
33+
max_num_idxs = MAPIClientSettings().MAX_LIST_LENGTH
1334

1435
with pytest.raises(ValueError,match="too long"):
1536
_ = validate_ids(
@@ -30,4 +51,4 @@ def test_id_validation():
3051
for x in validate_ids(
3152
[y + AlphaID._cut_point for y in range(max_num_idxs)]
3253
)
33-
)
54+
)

0 commit comments

Comments
 (0)