diff --git a/src/superannotate/lib/app/interface/sdk_interface.py b/src/superannotate/lib/app/interface/sdk_interface.py index f6beab25..bc6b820e 100644 --- a/src/superannotate/lib/app/interface/sdk_interface.py +++ b/src/superannotate/lib/app/interface/sdk_interface.py @@ -659,7 +659,7 @@ def list_users( """ if project is not None: if isinstance(project, int): - project = self.controller.get_project_by_id(project) + project = self.controller.get_project_by_id(project).data else: project = self.controller.get_project(project) response = BaseSerializer.serialize_iterable( diff --git a/tests/integration/work_management/test_list_users.py b/tests/integration/work_management/test_list_users.py new file mode 100644 index 00000000..53c7d321 --- /dev/null +++ b/tests/integration/work_management/test_list_users.py @@ -0,0 +1,38 @@ +from superannotate import SAClient +from tests.integration.base import BaseTestCase + +sa = SAClient() + + +class TestListUsers(BaseTestCase): + PROJECT_NAME = "TestListUsers" + PROJECT_TYPE = "Vector" + + def setUp(self): + super().setUp() + team_users = sa.list_users() + assert len(team_users) > 0 + scapegoat = [ + u + for u in team_users + if u["role"] == "Contributor" and u["state"] == "Confirmed" + ][0] + self.scapegoat = scapegoat + sa.add_contributors_to_project( + self.PROJECT_NAME, [scapegoat["email"]], "Annotator" + ) + + def test_list_users_by_project_name(self): + project_users = sa.list_users(project=self.PROJECT_NAME) + assert len(project_users) == 1 + user_1 = project_users[0] + assert user_1["role"] == "Annotator" + assert user_1["email"] == self.scapegoat["email"] + + def test_list_users_by_project_ID(self): + project = sa.get_project_metadata(self.PROJECT_NAME) + project_users = sa.list_users(project=project["id"]) + assert len(project_users) == 1 + user_1 = project_users[0] + assert user_1["role"] == "Annotator" + assert user_1["email"] == self.scapegoat["email"]