diff --git a/src/superannotate/lib/app/interface/sdk_interface.py b/src/superannotate/lib/app/interface/sdk_interface.py index 60f50062a..c81a47fcb 100644 --- a/src/superannotate/lib/app/interface/sdk_interface.py +++ b/src/superannotate/lib/app/interface/sdk_interface.py @@ -2779,7 +2779,6 @@ def attach_items( if response.errors: raise AppException(response.errors) uploaded, duplicated = response.data - uploaded = [i["name"] for i in uploaded] fails = [ attachment.name for attachment in unique_attachments diff --git a/src/superannotate/lib/core/service_types.py b/src/superannotate/lib/core/service_types.py index 96228deed..fef6599e8 100644 --- a/src/superannotate/lib/core/service_types.py +++ b/src/superannotate/lib/core/service_types.py @@ -155,6 +155,11 @@ def error(self): else: return getattr(self.data, "error", default_message) + def set_error(self, value: Union[dict, str]): + if isinstance(value, dict) and "error" in value: + self._error = value["error"] + self._error = value + class TeamResponse(ServiceResponse): data: entities.TeamEntity = None diff --git a/src/superannotate/lib/core/usecases/items.py b/src/superannotate/lib/core/usecases/items.py index 86c2a6cd8..978456d74 100644 --- a/src/superannotate/lib/core/usecases/items.py +++ b/src/superannotate/lib/core/usecases/items.py @@ -423,7 +423,7 @@ def execute(self) -> Response: if not backend_response.ok: self._response.errors = AppException(backend_response.error) else: - attached.extend(backend_response.data) + attached.extend([i.name for i in to_upload]) self.reporter.update_progress(len(attachments)) self.reporter.finish_progress() self._response.data = attached, duplications diff --git a/src/superannotate/lib/infrastructure/services/http_client.py b/src/superannotate/lib/infrastructure/services/http_client.py index c605fdc41..2fa403e6f 100644 --- a/src/superannotate/lib/infrastructure/services/http_client.py +++ b/src/superannotate/lib/infrastructure/services/http_client.py @@ -143,24 +143,24 @@ def paginate( while True: _url = f"{url}{splitter}offset={offset}" - response = self.request( + _response = self.request( _url, method="get", item_type=List[item_type], params=query_params, ) - if response.ok: - if isinstance(response.data, dict): - data = response.data.get(dispatcher) + if _response.ok: + if isinstance(_response.data, dict): + data = _response.data.get(dispatcher) else: - data = response.data + data = _response.data if data: total.extend(data) else: break data_len = len(data) offset += data_len - if data_len < chunk_size or response.count - offset < 0: + if data_len < chunk_size or _response.count - offset < 0: break else: break @@ -170,4 +170,7 @@ def paginate( ) else: response = ServiceResponse(data=total) + if not _response.ok: + response.set_error(_response.error) + response.status = _response.status return response diff --git a/tests/integration/items/test_get_item_metadata.py b/tests/integration/items/test_get_item_metadata.py index 571229b4c..ea2187f4b 100644 --- a/tests/integration/items/test_get_item_metadata.py +++ b/tests/integration/items/test_get_item_metadata.py @@ -2,9 +2,10 @@ from pathlib import Path from src.superannotate import SAClient -sa = SAClient() from tests.integration.base import BaseTestCase +sa = SAClient() + class TestGetEntityMetadataVector(BaseTestCase): PROJECT_NAME = "TestGetEntityMetadataVector"