def test_get_object_version( session: sessionmaker(), objects: VersionedJSONSerializableObjectTables ) -> None: user1 = User(name="User 1") session.add(user1) action = Action(id=0, schema={}) session.add(action) session.commit() object1 = objects.create_object(action_id=action.id, data={}, schema={}, user_id=user1.id) user2 = User(name="User 2") session.add(user2) session.commit() object2 = objects.update_object(object1.object_id, data={'test': 1}, schema={}, user_id=user2.id) object_version1 = objects.get_object_version(object1.object_id, 0) object_version2 = objects.get_object_version(object1.object_id, 1) object_version3 = objects.get_object_version(object1.object_id, 2) assert object_version1 == object1 assert object_version2 == object2 assert object_version3 is None
def test_update_object(session: sessionmaker(), objects: VersionedJSONSerializableObjectTables) -> None: user1 = User(name="User 1") session.add(user1) action = Action(id=0, schema={}) session.add(action) session.commit() object1 = objects.create_object(action_id=action.id, data={}, schema={}, user_id=user1.id) assert [object1] == objects.get_current_objects() assert object1 == objects.get_current_object(object1.object_id) user2 = User(name="User 2") session.add(user2) session.commit() object2 = objects.update_object(object1.object_id, data={'test': 1}, schema={}, user_id=user2.id) assert object2.object_id == object1.object_id assert object2.version_id == 1 assert object2.user_id is not None and object2.user_id == user2.id assert object2.data == {'test': 1} assert object2.schema == {} assert object2.utc_datetime < datetime.datetime.utcnow() assert object2.utc_datetime > datetime.datetime.utcnow( ) - datetime.timedelta(seconds=5) assert [object2] == objects.get_current_objects() assert object2 == objects.get_current_object(object2.object_id)
def test_update_object_invalid_data( session: sessionmaker(), objects: VersionedJSONSerializableObjectTables ) -> None: user = User(name="User 1") session.add(user) action = Action(id=0, schema={}) session.add(action) session.commit() object1 = objects.create_object(action_id=action.id, data={}, schema={}, user_id=user.id) assert [object1] == objects.get_current_objects() assert object1 == objects.get_current_object(object1.object_id) schema = {'type': 'object', 'properties': {'test': {'type': 'integer'}}} with pytest.raises(jsonschema.exceptions.ValidationError): objects.update_object(object1.object_id, data={'test': '1'}, schema=schema, user_id=user.id)