Skip to content

Commit fced80d

Browse files
authored
Merge pull request #661 from superannotateai/FRIDAY-2164
fix search_projects
2 parents 0cec2ba + 806739b commit fced80d

File tree

2 files changed

+64
-3
lines changed

2 files changed

+64
-3
lines changed

src/superannotate/lib/infrastructure/services/project.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ def create(self, entity: entities.ProjectEntity) -> ServiceResponse:
4444

4545
def list(self, condition: Condition = None):
4646
return self.client.paginate(
47-
url=f"{self.URL_LIST}?{condition.build_query()}"
48-
if condition
49-
else self.URL_LIST,
47+
url=self.URL_LIST,
48+
query_params=condition.get_as_params_dict(),
5049
item_type=entities.ProjectEntity,
5150
)
5251

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from src.superannotate import SAClient
2+
from tests.integration.base import BaseTestCase
3+
4+
sa = SAClient()
5+
6+
7+
class TestProjectSearch(BaseTestCase):
8+
PROJECT_NAME = "TestProjectSearch"
9+
PROJECT_DESCRIPTION = "Desc"
10+
PROJECT_TYPE = "Vector"
11+
PROJECT_NAME_2 = "TestProjectSearch2"
12+
REPLACED_PROJECT_NAME = "TestProjectSearchReplaced"
13+
PROJECT_NAME_CONTAIN_SPECIAL_CHARACTER = "TestProjectName!@#$%+"
14+
15+
def setUp(self, *args, **kwargs):
16+
self.tearDown()
17+
self._project = sa.create_project(
18+
self.PROJECT_NAME, self.PROJECT_DESCRIPTION, self.PROJECT_TYPE
19+
)
20+
self._project_2 = sa.create_project(
21+
self.PROJECT_NAME_2, self.PROJECT_DESCRIPTION, self.PROJECT_TYPE
22+
)
23+
24+
def tearDown(self) -> None:
25+
projects = []
26+
projects.extend(sa.search_projects(self.PROJECT_NAME, return_metadata=True))
27+
projects.extend(
28+
sa.search_projects(self.REPLACED_PROJECT_NAME, return_metadata=True)
29+
)
30+
projects.extend(
31+
sa.search_projects(
32+
self.PROJECT_NAME_CONTAIN_SPECIAL_CHARACTER, return_metadata=True
33+
)
34+
)
35+
for project in projects:
36+
try:
37+
sa.delete_project(project)
38+
except Exception as _:
39+
pass
40+
41+
def test_project_search(self):
42+
# search before rename
43+
result = sa.search_projects(self.PROJECT_NAME, return_metadata=True)
44+
assert len(result) == 2
45+
46+
# search after rename
47+
sa.rename_project(self.PROJECT_NAME, self.REPLACED_PROJECT_NAME)
48+
meta = sa.get_project_metadata(self.REPLACED_PROJECT_NAME)
49+
self.assertEqual(meta["name"], self.REPLACED_PROJECT_NAME)
50+
result = sa.search_projects(self.REPLACED_PROJECT_NAME, return_metadata=True)
51+
assert len(result) == 1
52+
assert result[0]["name"] == self.REPLACED_PROJECT_NAME
53+
54+
def test_project_search_special_character(self):
55+
sa.rename_project(
56+
self.PROJECT_NAME, self.PROJECT_NAME_CONTAIN_SPECIAL_CHARACTER
57+
)
58+
meta = sa.get_project_metadata(self.PROJECT_NAME_CONTAIN_SPECIAL_CHARACTER)
59+
self.assertEqual(meta["name"], self.PROJECT_NAME_CONTAIN_SPECIAL_CHARACTER)
60+
result = sa.search_projects("!@#$%+", return_metadata=True)
61+
assert len(result) == 1
62+
assert result[0]["name"] == self.PROJECT_NAME_CONTAIN_SPECIAL_CHARACTER

0 commit comments

Comments
 (0)