Skip to content
Snippets Groups Projects
Verified Commit 089b8804 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: entity state

parent da28ee7e
No related branches found
No related tags found
1 merge request!3F fsm
......@@ -746,15 +746,14 @@ def test_unauthorized_initial():
# it is not allowed to "steal" the entity with the state feature
rec.update(sync = False)
assert "You are not allowed to do this." in str(exc.value)
rec_retrieve = db.Record(id=rec.id).retrieve(flags={"ACL": None})
rec_retrieve = db.Record(id=rec.id).retrieve()
assert rec_retrieve.state is None
# we need to give ownership to "team-leader"
switch_to_admin_user()
rec_update = rec_retrieve
print(rec_update.acl)
rec_update = db.Record(id=rec.id).retrieve(flags={"ACL": None})
rec_update.acl.grant(role="team-leader", permission="EDIT:ACL")
print(rec_update.acl)
rec_update.acl.grant(role="team-leader", permission="RETRIEVE:ACL")
rec_update.update_acl()
switch_to_test_user("team-leader")
......@@ -763,3 +762,39 @@ def test_unauthorized_initial():
rec_retrieve = db.Record(id=rec.id).retrieve()
assert rec_retrieve.state == db.State(model="Model1", name="State1")
@pytest.mark.xfail(reason="This is a very special corner case bug with low severity")
def test_transitions_included_after_empty_update():
rec = db.Record()
rec.description = "old description"
rec.add_parent("TestRT")
rec.state = db.State(model="Model1", name="State1")
rec_insert = rec.insert(sync=False)
assert rec_insert.state.transitions is not None
assert rec_insert.state.transitions == {db.Transition(name="Transition1",
from_state="State1",
to_state="State2")}
rec_insert.description = "new_description"
rec_insert.state = db.State(model="Model1", name="State2")
rec_update = rec_insert.update(sync=False)
assert rec_update.state.transitions is not None
assert rec_update.state.transitions == {db.Transition(name="Transition2",
from_state="State2",
to_state="State3"),
db.Transition(name="Transition4",
from_state="State2",
to_state="State2")}
rec_update_2 = rec_update.update(sync=False)
# this fails
assert rec_update_2.state.transitions is not None
assert rec_update_2.state.transitions == {db.Transition(name="Transition1",
from_state="State1",
to_state="State2"),
db.Transition(name="Transition4",
from_state="State2",
to_state="State2")}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment