From d67c98f948d04b870c7357d38d23ed7764c82052 Mon Sep 17 00:00:00 2001 From: Phil Barber Date: Thu, 14 Dec 2023 11:00:53 -0500 Subject: [PATCH] Add a new Optic DSL Update test to demonstrate including permissions. Add a new Optic DSL Update test to demonstrate including permissions. --- tests/test_rows_update.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/tests/test_rows_update.py b/tests/test_rows_update.py index ee63e8b..844cd21 100644 --- a/tests/test_rows_update.py +++ b/tests/test_rows_update.py @@ -1,4 +1,32 @@ -from marklogic.documents import DefaultMetadata, Document +import json +from marklogic.documents import Document + + +def test_update_dsl_fromDocDescriptors(client): + doc_uri = "/doc1.json" + doc_contents = {"hello": "doc1"} + doc_permissions = [ + {"capability": "read", "roleName": "python-tester"}, + {"capability": "update", "roleName": "python-tester"}, + ] + update_query_fromDocDescriptors = f""" + const docDescriptors = [ + {{ + uri:"{doc_uri}", + doc:'{json.dumps(doc_contents)}', + permissions: {json.dumps(doc_permissions)} + }} + ]; + op.fromDocDescriptors(docDescriptors).write() + """ + response = client.rows.update(update_query_fromDocDescriptors, return_response=True) + assert 200 == response.status_code + + docs = client.documents.read([doc_uri]) + doc1 = next(doc for doc in docs if doc.uri == doc_uri) + assert "application/json" == doc1.content_type + assert doc1.version_id is not None + assert doc_contents == doc1.content def test_update_dsl_remove(admin_client):