generated from coulomb/repo-seed
projection-only multifiling
This commit is contained in:
@@ -84,6 +84,7 @@ def test_cmis_browser_binding_routes_are_advertised_in_openapi(cmis_client) -> N
|
||||
assert "/cmis/{access_point_id}/browser/object/{object_id}" in paths
|
||||
assert "/cmis/{access_point_id}/browser/content/{object_id}" in paths
|
||||
assert "/cmis/{access_point_id}/browser/acl/{object_id}" in paths
|
||||
assert "/cmis/{access_point_id}/browser/parents/{object_id}" in paths
|
||||
assert "/cmis/{access_point_id}/browser/query" in paths
|
||||
assert "/cmis/{access_point_id}/browser/relationships" in paths
|
||||
assert "/cmis/{access_point_id}/browser/changes" in paths
|
||||
|
||||
@@ -73,7 +73,7 @@ def test_mapper_exposes_repository_info_capabilities_and_base_type_definitions()
|
||||
assert repository["cmis_version_supported"] == "1.1"
|
||||
assert repository["binding"] == "browser"
|
||||
assert repository["capabilities"]["capability_query"] == "metadataonly"
|
||||
assert repository["capabilities"]["capability_multifiling"] is False
|
||||
assert repository["capabilities"]["capability_multifiling"] is True
|
||||
|
||||
assert set(types) == {
|
||||
"cmis:document",
|
||||
@@ -128,6 +128,21 @@ def test_mapper_projects_asset_to_cmis_document_envelope() -> None:
|
||||
assert CMISAction.UPDATE_PROPERTIES.value not in serialized["allowable_actions"]
|
||||
|
||||
|
||||
def test_mapper_projects_multiple_parent_folders_without_duplicate_assets() -> None:
|
||||
mapper = _mapper()
|
||||
asset = _asset()
|
||||
|
||||
parents = mapper.parent_folders_for_asset(asset)
|
||||
parent_paths = {parent["path"] for parent in parents}
|
||||
|
||||
assert "/sources/sharepoint/Architecture" in parent_paths
|
||||
assert "/topics/architecture" in parent_paths
|
||||
assert "/topics/cmis" in parent_paths
|
||||
assert "/owners/Platform Knowledge" in parent_paths
|
||||
assert "/lifecycle/active" in parent_paths
|
||||
assert len(parent_paths) == len(parents)
|
||||
|
||||
|
||||
def test_governed_authoring_projection_includes_write_allowable_actions() -> None:
|
||||
mapper = _mapper(CMISAccessProfile.governed_authoring())
|
||||
asset = _asset()
|
||||
@@ -175,4 +190,3 @@ def test_mapper_projects_relationship_objects() -> None:
|
||||
assert serialized["properties"]["cmis:sourceId"] == "cmis:asset:asset-source"
|
||||
assert serialized["properties"]["cmis:targetId"] == "cmis:asset:asset-target"
|
||||
assert serialized["properties"]["kontextual:predicate"] == "derived_from"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ def cmis_runtime() -> tuple[ServiceRuntime, object]:
|
||||
asset_type="document",
|
||||
sensitivity=Sensitivity.INTERNAL,
|
||||
owner="Platform Knowledge",
|
||||
topics=("cmis",),
|
||||
topics=("cmis", "integration"),
|
||||
),
|
||||
context,
|
||||
asset_id="asset-runtime-source",
|
||||
@@ -85,16 +85,21 @@ def test_runtime_cmis_browser_repository_types_children_and_object(cmis_runtime)
|
||||
repository = runtime.cmis_repository_info("readonly-browser")
|
||||
types = runtime.cmis_type_definitions("readonly-browser")
|
||||
children = runtime.cmis_children("readonly-browser", context)
|
||||
topic_children = runtime.cmis_children("readonly-browser", context, folder_id="/topics/cmis")
|
||||
obj = runtime.cmis_object("readonly-browser", "cmis:asset:asset-runtime-source", context)
|
||||
parents = runtime.cmis_object_parents("readonly-browser", "cmis:asset:asset-runtime-source", context)
|
||||
|
||||
assert access_points["count"] == 4
|
||||
assert repository["repository_id"] == "kontextual-readonly-browser"
|
||||
assert repository["capabilities"]["capability_get_descendants"] is True
|
||||
assert {item["base_type_id"] for item in types["items"]} >= {"cmis:document", "cmis:folder"}
|
||||
object_ids = {item["object_id"] for item in children["objects"]}
|
||||
assert "cmis:asset:asset-runtime-source" in object_ids
|
||||
assert "cmis:asset:asset-runtime-public" in object_ids
|
||||
assert "cmis:asset:asset-runtime-confidential" not in object_ids
|
||||
root_paths = {item["path"] for item in children["objects"]}
|
||||
topic_object_ids = {item["object_id"] for item in topic_children["objects"]}
|
||||
parent_paths = {item["path"] for item in parents["parents"]}
|
||||
assert "/topics" in root_paths
|
||||
assert "cmis:asset:asset-runtime-source" in topic_object_ids
|
||||
assert "cmis:asset:asset-runtime-confidential" not in topic_object_ids
|
||||
assert {"/topics/cmis", "/topics/integration"} <= parent_paths
|
||||
assert obj["properties"]["kontextual:assetId"] == "asset-runtime-source"
|
||||
|
||||
|
||||
|
||||
@@ -658,6 +658,7 @@ def test_service_health_readiness_version_and_openapi_contracts(client) -> None:
|
||||
assert "/cmis/{access_point_id}/browser" in paths
|
||||
assert "/cmis/{access_point_id}/browser/children" in paths
|
||||
assert "/cmis/{access_point_id}/browser/acl/{object_id}" in paths
|
||||
assert "/cmis/{access_point_id}/browser/parents/{object_id}" in paths
|
||||
assert "/cmis/{access_point_id}/browser/document" in paths
|
||||
assert "/cmis/{access_point_id}/browser/object/{object_id}/properties" in paths
|
||||
assert "/api/v1/assets" in paths
|
||||
|
||||
Reference in New Issue
Block a user