diff --git a/tests/test_state.py b/tests/test_state.py index 490b091f9d6c1585cb80d4d288a35e1f88e0ebb2..87a284cd9265df4630475541a63cf391e2928197 100644 --- a/tests/test_state.py +++ b/tests/test_state.py @@ -1,14 +1,25 @@ import pytest import caosdb as db +from caosdb import administration as admin + +_ORIGINAL_EXT_ENTITY_STATE = "" def teardown_module(): d = db.execute_query("FIND ENTITY WITH ID > 99") if len(d) > 0: d.delete(flags={"forceFinalState": "true"}) + admin.set_server_property("EXT_ENTITY_STATE", + _ORIGINAL_EXT_ENTITY_STATE) def setup_module(): + global _ORIGINAL_EXT_ENTITY_STATE + try: + _ORIGINAL_EXT_ENTITY_STATE = admin.get_server_property( + "EXT_ENTITY_STATE") + except KeyError: + pass teardown_module() db.RecordType("State").insert() db.RecordType("StateModel").insert() @@ -55,10 +66,39 @@ def teardown(): def setup(): + admin.set_server_property("EXT_ENTITY_STATE", "ENABLED") teardown() db.RecordType("TestRT").insert() +def test_plugin_disabled(): + admin.set_server_property("EXT_ENTITY_STATE", "DISABLED") + + rec = db.Record() + rec.add_parent("TestRT") + rec.state = db.State(model="Model1", name="State1") + assert rec.get_property("State") is None + + rec_insert = rec.insert(sync=False) + assert rec_insert.get_property("State") is None + assert rec_insert.state == rec.state + + # however, state was not stored + rec_retrieve = db.Record.retrieve(rec_insert.id) + assert rec_retrieve.get_property("State") is None + assert rec_retrieve.state is None + + # also, properties are not interpreted as state + rec = db.Record() + rec.add_parent("TestRT") + rec.add_property("State", "State2") + rec_insert = rec.insert(sync=False) + + rec_retrieve = db.Record.retrieve(rec_insert.id) + assert rec_retrieve.get_property("State").value is not None + assert rec_retrieve.state is None + + def test_state_message(): rec = db.Record() rec.add_parent("TestRT")