diff --git a/src/superannotate/lib/app/interface/sdk_interface.py b/src/superannotate/lib/app/interface/sdk_interface.py index 33a4508d2..c86cd48a5 100644 --- a/src/superannotate/lib/app/interface/sdk_interface.py +++ b/src/superannotate/lib/app/interface/sdk_interface.py @@ -627,9 +627,11 @@ def search_folders( if return_metadata: condition &= Condition("includeUsers", return_metadata, EQ) if status: - condition &= Condition( - "status", constants.FolderStatus.get_value(status), EQ - ) + if isinstance(status, list): + status_condition = [constants.FolderStatus.get_value(i) for i in status] + else: + status_condition = constants.FolderStatus.get_value(status) + condition &= Condition("status", status_condition, EQ) response = self.controller.folders.list(project, condition) if response.errors: raise AppException(response.errors) diff --git a/tests/integration/folders/test_search_folders.py b/tests/integration/folders/test_search_folders.py index 9701a5cee..ab9fa63c5 100644 --- a/tests/integration/folders/test_search_folders.py +++ b/tests/integration/folders/test_search_folders.py @@ -13,6 +13,7 @@ class TestSearchFolders(BaseTestCase): SPECIAL_CHARS = r"/\:*?“<>|" TEST_FOLDER_NAME_1 = "folder_1" TEST_FOLDER_NAME_2 = "folder_2" + TEST_FOLDER_NAME_3 = "folder_3" def test_search_folders(self): sa.create_folder(self.PROJECT_NAME, self.TEST_FOLDER_NAME_1) @@ -29,6 +30,26 @@ def test_search_folders(self): folders = sa.search_folders(self.PROJECT_NAME, status="NotStarted") assert len(folders) == 2 + # with status list + sa.create_folder(self.PROJECT_NAME, self.TEST_FOLDER_NAME_3) + sa.set_folder_status( + self.PROJECT_NAME, self.TEST_FOLDER_NAME_3, status="InProgress" + ) + folders_2 = sa.search_folders( + self.PROJECT_NAME, status=["NotStarted", "InProgress", "Completed"] + ) + assert len(folders_2) == 3 + + folders_3 = sa.search_folders( + self.PROJECT_NAME, status=["InProgress", "Completed"] + ) + assert len(folders_3) == 1 + + folders_4 = sa.search_folders( + self.PROJECT_NAME, status=["NotStarted", "Completed"] + ) + assert len(folders_4) == 2 + # with invalid status pattern = ( r"(\s+)status(\s+)Available values are 'NotStarted', "