From e060f329bd43674cc091ed7c05e9680cca220723 Mon Sep 17 00:00:00 2001 From: Narek Mkhitaryan Date: Fri, 31 Oct 2025 16:33:23 +0400 Subject: [PATCH] fix in assign_folder --- .../lib/app/interface/sdk_interface.py | 11 ++--- .../integration/folders/test_assign_folder.py | 48 +++++++++++++++++++ 2 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 tests/integration/folders/test_assign_folder.py diff --git a/src/superannotate/lib/app/interface/sdk_interface.py b/src/superannotate/lib/app/interface/sdk_interface.py index c0b23c070..2c88724ea 100644 --- a/src/superannotate/lib/app/interface/sdk_interface.py +++ b/src/superannotate/lib/app/interface/sdk_interface.py @@ -2141,15 +2141,10 @@ def assign_folder( if response.errors: raise AppException(response.errors) project = response.data - response = self.controller.projects.get_metadata( - project=project, include_contributors=True + project_contributors = self.controller.work_management.list_users( + project=project ) - - if response.errors: - raise AppException(response.errors) - - contributors = response.data.users - verified_users = [i.user_id for i in contributors] + verified_users = [i.email for i in project_contributors] verified_users = set(users).intersection(set(verified_users)) unverified_contributor = set(users) - verified_users diff --git a/tests/integration/folders/test_assign_folder.py b/tests/integration/folders/test_assign_folder.py new file mode 100644 index 000000000..cb82a58ec --- /dev/null +++ b/tests/integration/folders/test_assign_folder.py @@ -0,0 +1,48 @@ +from superannotate import SAClient +from tests.integration.base import BaseTestCase + +sa = SAClient() + + +class TestAssignFolderToUsers(BaseTestCase): + PROJECT_NAME = "TestAssignFolderToUsers" + PROJECT_TYPE = "Vector" + FOLDER_NAME = "test_folder_assign" + + def setUp(self): + super().setUp() + team_users = sa.list_users() + assert len(team_users) > 0 + self.scapegoat_accepted = next( + ( + u + for u in team_users + if u["state"] == "Confirmed" and u["role"] == "Contributor" + ), + None, + ) + self.scapegoat_pending = next( + ( + u + for u in team_users + if u["state"] == "Pending" and u["role"] == "Contributor" + ), + None, + ) + sa.add_contributors_to_project( + self.PROJECT_NAME, + [self.scapegoat_accepted["email"], self.scapegoat_pending["email"]], + "Annotator", + ) + project_users = sa.list_users(project=self.PROJECT_NAME) + assert len(project_users) == 2 + + def test_assign_folder_to_users(self): + # create folder + sa.create_folder(self.PROJECT_NAME, self.FOLDER_NAME) + + sa.assign_folder( + self.PROJECT_NAME, + self.FOLDER_NAME, + [self.scapegoat_accepted["email"], self.scapegoat_pending["email"]], + )