From c570b5db7076933926fcbac6215e4541664bea5e Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Tue, 19 Mar 2024 06:12:29 -0700 Subject: [PATCH 1/2] chore: Update .codegen.json with commit hash of codegen and openapi spec --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index d05c50a..caae037 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "3d3d072", "specHash": "d50ab5f", "version": "0.6.2" } +{ "engineHash": "0f24a26", "specHash": "d50ab5f", "version": "0.6.2" } From 79ac69cf3178affc9c51987a24d61c2b0d296586 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Tue, 19 Mar 2024 09:12:43 -0700 Subject: [PATCH 2/2] test: add test for metadata filters (box/box-codegen#454) --- .codegen.json | 2 +- docs/file_metadata.md | 2 +- docs/metadata_templates.md | 2 +- docs/search.md | 2 +- test/search.py | 116 +++++++++++++++++++++++++++++++++++++ 5 files changed, 120 insertions(+), 4 deletions(-) diff --git a/.codegen.json b/.codegen.json index caae037..93ad772 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "0f24a26", "specHash": "d50ab5f", "version": "0.6.2" } +{ "engineHash": "4f27d7e", "specHash": "d50ab5f", "version": "0.6.2" } diff --git a/docs/file_metadata.md b/docs/file_metadata.md index 841005c..8d3b2b4 100644 --- a/docs/file_metadata.md +++ b/docs/file_metadata.md @@ -88,7 +88,7 @@ See the endpoint docs at ```python -client.file_metadata.create_file_metadata_by_id(file.id, CreateFileMetadataByIdScope.ENTERPRISE.value, template_key, {'testName': 1}) +client.file_metadata.create_file_metadata_by_id(file.id, CreateFileMetadataByIdScope.ENTERPRISE.value, template_key, {'floatField': 10, 'stringField': 'stringValue', 'dateField': '2035-01-02T00:00:00Z', 'enumField': 'enumValue2', 'multiSelectField': ['multiSelectValue1', 'multiSelectValue2']}) ``` ### Arguments diff --git a/docs/metadata_templates.md b/docs/metadata_templates.md index e8e9664..6c22220 100644 --- a/docs/metadata_templates.md +++ b/docs/metadata_templates.md @@ -249,7 +249,7 @@ See the endpoint docs at ```python -client.metadata_templates.create_metadata_template('enterprise', template_key, template_key=template_key, fields=[CreateMetadataTemplateFields(type=CreateMetadataTemplateFieldsTypeField.FLOAT.value, key='testName', display_name='testName')]) +client.metadata_templates.create_metadata_template('enterprise', template_key, template_key=template_key, fields=[CreateMetadataTemplateFields(type=CreateMetadataTemplateFieldsTypeField.FLOAT.value, key='floatField', display_name='floatField'), CreateMetadataTemplateFields(type=CreateMetadataTemplateFieldsTypeField.STRING.value, key='stringField', display_name='stringField'), CreateMetadataTemplateFields(type=CreateMetadataTemplateFieldsTypeField.DATE.value, key='dateField', display_name='dateField'), CreateMetadataTemplateFields(type=CreateMetadataTemplateFieldsTypeField.ENUM.value, key='enumField', display_name='enumField', options=[CreateMetadataTemplateFieldsOptionsField(key='enumValue1'), CreateMetadataTemplateFieldsOptionsField(key='enumValue2')]), CreateMetadataTemplateFields(type=CreateMetadataTemplateFieldsTypeField.MULTISELECT.value, key='multiSelectField', display_name='multiSelectField', options=[CreateMetadataTemplateFieldsOptionsField(key='multiSelectValue1'), CreateMetadataTemplateFieldsOptionsField(key='multiSelectValue2')])]) ``` ### Arguments diff --git a/docs/search.md b/docs/search.md index 00a04a5..2c336c9 100644 --- a/docs/search.md +++ b/docs/search.md @@ -63,7 +63,7 @@ See the endpoint docs at ```python -client.search.search_for_content(query=keyword, ancestor_folder_ids=['0'], trash_content=SearchForContentTrashContent.NON_TRASHED_ONLY.value, include_recent_shared_links=True) +client.search.search_for_content(ancestor_folder_ids=['0'], mdfilters=[MetadataFilter(filters={'multiSelectField': ['multiSelectValue1', 'multiSelectValue2']}, scope=MetadataFilterScopeField.ENTERPRISE.value, template_key=template_key)]) ``` ### Arguments diff --git a/test/search.py b/test/search.py index c195684..5aa7925 100644 --- a/test/search.py +++ b/test/search.py @@ -34,6 +34,14 @@ from box_sdk_gen.managers.search import SearchForContentTrashContent +from box_sdk_gen.managers.metadata_templates import ( + CreateMetadataTemplateFieldsOptionsField, +) + +from box_sdk_gen.schemas import MetadataFilter + +from box_sdk_gen.schemas import MetadataFilterScopeField + from box_sdk_gen.internal.utils import get_uuid from box_sdk_gen.internal.utils import generate_byte_stream @@ -105,3 +113,111 @@ def testGetSearch(): ) assert len(search_with_shared_link.entries) >= 0 assert to_string(search_with_shared_link.type) == 'search_results_with_shared_links' + + +def testMetadataFilters(): + template_key: str = ''.join(['key', get_uuid()]) + template: MetadataTemplate = client.metadata_templates.create_metadata_template( + 'enterprise', + template_key, + template_key=template_key, + fields=[ + CreateMetadataTemplateFields( + type=CreateMetadataTemplateFieldsTypeField.FLOAT.value, + key='floatField', + display_name='floatField', + ), + CreateMetadataTemplateFields( + type=CreateMetadataTemplateFieldsTypeField.STRING.value, + key='stringField', + display_name='stringField', + ), + CreateMetadataTemplateFields( + type=CreateMetadataTemplateFieldsTypeField.DATE.value, + key='dateField', + display_name='dateField', + ), + CreateMetadataTemplateFields( + type=CreateMetadataTemplateFieldsTypeField.ENUM.value, + key='enumField', + display_name='enumField', + options=[ + CreateMetadataTemplateFieldsOptionsField(key='enumValue1'), + CreateMetadataTemplateFieldsOptionsField(key='enumValue2'), + ], + ), + CreateMetadataTemplateFields( + type=CreateMetadataTemplateFieldsTypeField.MULTISELECT.value, + key='multiSelectField', + display_name='multiSelectField', + options=[ + CreateMetadataTemplateFieldsOptionsField(key='multiSelectValue1'), + CreateMetadataTemplateFieldsOptionsField(key='multiSelectValue2'), + ], + ), + ], + ) + files: Files = client.uploads.upload_file( + UploadFileAttributes( + name=get_uuid(), parent=UploadFileAttributesParentField(id='0') + ), + generate_byte_stream(10), + ) + file: FileFull = files.entries[0] + metadata: MetadataFull = client.file_metadata.create_file_metadata_by_id( + file.id, + CreateFileMetadataByIdScope.ENTERPRISE.value, + template_key, + { + 'floatField': 10, + 'stringField': 'stringValue', + 'dateField': '2035-01-02T00:00:00Z', + 'enumField': 'enumValue2', + 'multiSelectField': ['multiSelectValue1', 'multiSelectValue2'], + }, + ) + string_query: Union[SearchResults, SearchResultsWithSharedLinks] = ( + client.search.search_for_content( + ancestor_folder_ids=['0'], + mdfilters=[ + MetadataFilter( + filters={'stringField': 'stringValue'}, + scope=MetadataFilterScopeField.ENTERPRISE.value, + template_key=template_key, + ) + ], + ) + ) + assert len(string_query.entries) >= 0 + enum_query: Union[SearchResults, SearchResultsWithSharedLinks] = ( + client.search.search_for_content( + ancestor_folder_ids=['0'], + mdfilters=[ + MetadataFilter( + filters={'enumField': 'enumValue2'}, + scope=MetadataFilterScopeField.ENTERPRISE.value, + template_key=template_key, + ) + ], + ) + ) + assert len(enum_query.entries) >= 0 + multi_select_query: Union[SearchResults, SearchResultsWithSharedLinks] = ( + client.search.search_for_content( + ancestor_folder_ids=['0'], + mdfilters=[ + MetadataFilter( + filters={ + 'multiSelectField': ['multiSelectValue1', 'multiSelectValue2'] + }, + scope=MetadataFilterScopeField.ENTERPRISE.value, + template_key=template_key, + ) + ], + ) + ) + assert len(multi_select_query.entries) >= 0 + client.metadata_templates.delete_metadata_template( + DeleteMetadataTemplateScope.ENTERPRISE.value, template.template_key + ) + client.files.delete_file_by_id(file.id)