Skip to content

Commit c1b2473

Browse files
authored
Merge pull request #247 from superannotateai/folder_fix
284 Fixed create_folder
2 parents e0501d6 + 0b01746 commit c1b2473

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

src/superannotate/lib/app/interface/sdk_interface.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -332,10 +332,6 @@ def create_folder(project: NotEmptyStr, folder_name: NotEmptyStr):
332332
res = controller.create_folder(project=project, folder_name=folder_name)
333333
if res.data:
334334
folder = res.data
335-
if folder and folder.name != folder_name:
336-
logger.warning(
337-
f"Created folder has name {folder.name}, since folder with name {folder_name} already existed.",
338-
)
339335
logger.info(f"Folder {folder.name} created in project {project}")
340336
return folder.to_dict()
341337
if res.errors:

src/superannotate/lib/core/usecases/folders.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ def __init__(
2727
self._project = project
2828
self._folder = folder
2929
self._folders = folders
30+
self._origin_name = folder.name
3031

3132
def validate_folder(self):
3233
if not self._folder.name:
@@ -53,6 +54,11 @@ def execute(self):
5354
if self.is_valid():
5455
self._folder.project_id = self._project.uuid
5556
self._response.data = self._folders.insert(self._folder)
57+
if self._response.data.name not in (self._origin_name, self._folder.name):
58+
logger.warning(
59+
f"Created folder has name {self._response.data.name},"
60+
f" since folder with name {self._folder.name} already existed."
61+
)
5662
return self._response
5763

5864

tests/integration/test_interface.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import tempfile
44
import pytest
55

6+
67
import src.superannotate as sa
78
from src.superannotate.lib.app.exceptions import AppException
89
from tests.integration.base import BaseTestCase
@@ -224,3 +225,29 @@ def test_export_annotation(self):
224225
)
225226
pass
226227

228+
def test_create_folder_with_special_character(self):
229+
with self.assertLogs() as logs:
230+
folder_1 = sa.create_folder(self.PROJECT_NAME, "**abc")
231+
folder_2 = sa.create_folder(self.PROJECT_NAME, "**abc")
232+
self.assertEqual(folder_1["name"], "__abc")
233+
self.assertEqual(folder_2["name"], "__abc (1)")
234+
self.assertIn(
235+
'New folder name has special characters. Special characters will be replaced by underscores.',
236+
logs.output[0]
237+
)
238+
self.assertIn(
239+
'Folder __abc created in project Interface Pixel test',
240+
logs.output[1]
241+
)
242+
self.assertIn(
243+
'New folder name has special characters. Special characters will be replaced by underscores.',
244+
logs.output[2]
245+
)
246+
self.assertIn(
247+
'Created folder has name __abc (1), since folder with name __abc already existed.',
248+
logs.output[3]
249+
)
250+
self.assertIn(
251+
'Folder __abc (1) created in project Interface Pixel test',
252+
logs.output[4]
253+
)

0 commit comments

Comments
 (0)