generated from coulomb/repo-seed
query parsing and diagnostics
This commit is contained in:
@@ -110,17 +110,48 @@ def test_runtime_cmis_browser_content_query_relationships_and_changes(cmis_runti
|
||||
|
||||
content = runtime.cmis_content_stream("readonly-browser", "cmis:asset:asset-runtime-source", context)
|
||||
query = runtime.cmis_query("readonly-browser", "SELECT * FROM cmis:document", context)
|
||||
filtered_query = runtime.cmis_query(
|
||||
"readonly-browser",
|
||||
"SELECT * FROM cmis:document WHERE kontextual:sensitivity = 'internal' "
|
||||
"AND kontextual:topics IN ('integration') ORDER BY cmis:name DESC",
|
||||
context,
|
||||
)
|
||||
like_query = runtime.cmis_query(
|
||||
"readonly-browser",
|
||||
"SELECT * FROM cmis:document WHERE cmis:name LIKE 'Runtime %' ORDER BY cmis:name DESC",
|
||||
context,
|
||||
)
|
||||
relationships = runtime.cmis_relationships(
|
||||
"readonly-browser",
|
||||
context,
|
||||
object_id="cmis:asset:asset-runtime-source",
|
||||
)
|
||||
target_relationships = runtime.cmis_relationships(
|
||||
"readonly-browser",
|
||||
context,
|
||||
object_id="cmis:asset:asset-runtime-public",
|
||||
relationship_direction="target",
|
||||
)
|
||||
either_relationships = runtime.cmis_relationships(
|
||||
"readonly-browser",
|
||||
context,
|
||||
object_id="cmis:asset:asset-runtime-public",
|
||||
relationship_direction="either",
|
||||
)
|
||||
changes = runtime.cmis_change_log("readonly-browser", context)
|
||||
|
||||
assert content["mime_type"] in {"text/plain", "text/markdown"}
|
||||
assert query["total_num_items"] == 2
|
||||
assert [item["object_id"] for item in filtered_query["results"]] == [
|
||||
"cmis:asset:asset-runtime-source"
|
||||
]
|
||||
assert [item["name"] for item in like_query["results"]] == ["Runtime Source", "Runtime Public"]
|
||||
assert relationships["count"] == 1
|
||||
assert relationships["items"][0]["properties"]["cmis:targetId"] == "cmis:asset:asset-runtime-public"
|
||||
assert relationships["items"][0]["properties"]["cmis:changeToken"].startswith("relationship:")
|
||||
assert relationships["items"][0]["properties"]["kontextual:direction"] == "outbound"
|
||||
assert target_relationships["count"] == 1
|
||||
assert either_relationships["count"] == 1
|
||||
assert changes["total_num_items"] >= 3
|
||||
assert all(change["object_id"] != "cmis:asset:asset-runtime-confidential" for change in changes["changes"])
|
||||
|
||||
@@ -137,6 +168,16 @@ def test_runtime_cmis_browser_rejects_unsupported_query_subset(cmis_runtime) ->
|
||||
|
||||
assert "Unsupported CMIS query subset" in str(exc_info.value)
|
||||
|
||||
with pytest.raises(Exception) as direction_exc:
|
||||
runtime.cmis_relationships(
|
||||
"readonly-browser",
|
||||
context,
|
||||
object_id="cmis:asset:asset-runtime-source",
|
||||
relationship_direction="both",
|
||||
)
|
||||
|
||||
assert "Unsupported CMIS relationship direction" in str(direction_exc.value)
|
||||
|
||||
|
||||
def test_runtime_cmis_governed_authoring_allows_selected_mutations(cmis_runtime) -> None:
|
||||
runtime, context = cmis_runtime
|
||||
@@ -335,6 +376,10 @@ def test_runtime_cmis_acl_projection_and_redaction(cmis_runtime) -> None:
|
||||
|
||||
assert public_acl["is_exact"] is True
|
||||
assert {entry["principal_id"] for entry in public_acl["aces"]} == {"cmis-runtime", "anyone"}
|
||||
assert public_acl["policy_authority"] == "kontextual-policy-gateway"
|
||||
assert public_acl["permission_mapping"]["cmis:read"] == "asset visible through profile policy"
|
||||
assert {entry["principal_kind"] for entry in public_acl["aces"]} == {"human", "well_known"}
|
||||
assert {entry["inherited"] for entry in public_acl["aces"]} == {False, True}
|
||||
assert ["cmis:read", "cmis:write", "cmis:delete"] in [
|
||||
entry["permissions"] for entry in internal_acl["aces"]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user