Skip to content

Commit fbbd5ff

Browse files
authored
Add regression test for cloning / storing locked element sets (#624)
Add a regression test to check that #565 is fixed in the backend. Closes #565.
1 parent 86f5d32 commit fbbd5ff

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

tests/conftest.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,3 +276,14 @@ def inner(version: str):
276276
yield
277277

278278
return inner
279+
280+
281+
@pytest.fixture
282+
def skip_before_version(acp_instance):
283+
"""Skip a test before a certain server version."""
284+
285+
def inner(version: str):
286+
if parse_version(acp_instance.server_version) < parse_version(version):
287+
pytest.skip(f"Test is not supported before version {version}")
288+
289+
return inner

tests/unittests/test_element_set.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,21 @@ def default_properties():
6666

6767
CREATE_METHOD_NAME = "create_element_set"
6868
INITIAL_OBJECT_NAMES = ("All_Elements",)
69+
70+
71+
def test_clone_locked(parent_object, skip_before_version):
72+
"""Test that a locked element set can be correctly cloned.
73+
74+
Regression test for #565: cloning and storing a locked element
75+
set produces an empty element set.
76+
The root cause for this issue was that the locked element set
77+
did not expose their 'element_labels' in the API.ga
78+
"""
79+
skip_before_version("25.1")
80+
81+
element_set = parent_object.element_sets["All_Elements"]
82+
assert len(element_set.element_labels) > 0
83+
cloned_element_set = element_set.clone()
84+
cloned_element_set.store(parent=parent_object)
85+
assert not cloned_element_set.locked
86+
assert len(cloned_element_set.element_labels) > 0

0 commit comments

Comments
 (0)