Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,11 @@ def _validate_page_response(
def create(self, items: Sequence[ExternalDataSourceRequest]) -> list[ExternalDataSourceResponse]:
return self._request_item_response(items, "create")

def delete(self, items: Sequence[ExternalId]) -> None:
self._request_no_response(items, "delete")
def delete(self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False) -> None:
if ignore_unknown_ids:
self._request_item_split_retries_no_response(items, "delete")
else:
self._request_no_response(items, "delete")

def list(self, limit: int | None = 100) -> list[ExternalDataSourceResponse]:
return self._list(limit=limit)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,8 @@ class ExternalDataSourceIO(
kind = "ExternalDataSource"
yaml_cls = ExternalDataSourceYAML
dependencies = frozenset({DataSetsIO})
_doc_base_url = ""
_doc_url = (
"https://docs.cognite.com/20230101-beta/transformation-external-data-sources/create-external-data-sources"
)

_doc_url = "Transformation-External-Data-Sources/operation/createExternalDataSources"
_doc_base_url = "https://api-docs.cognite.com/20230101-beta/tag/"
support_update = False

@property
Expand Down
49 changes: 48 additions & 1 deletion tests_smoke/test_client/test_cdf_resource_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
ThreeDClassicRevisionsAPI,
ThreeDDMAssetMappingAPI,
)
from cognite_toolkit._cdf_tk.client.api.transformation_externaldata import TransformationExternalDataSourcesAPI
from cognite_toolkit._cdf_tk.client.api.transformation_notifications import TransformationNotificationsAPI
from cognite_toolkit._cdf_tk.client.api.transformation_schedules import TransformationSchedulesAPI
from cognite_toolkit._cdf_tk.client.api.transformations import TransformationsAPI
Expand Down Expand Up @@ -108,7 +109,10 @@
from cognite_toolkit._cdf_tk.client.resource_classes.dataset import DataSetRequest, DataSetResponse
from cognite_toolkit._cdf_tk.client.resource_classes.documents import DOCUMENT_PROPERTY_OPTIONS, DocumentPropertyPath
from cognite_toolkit._cdf_tk.client.resource_classes.event import EventRequest, EventResponse
from cognite_toolkit._cdf_tk.client.resource_classes.externaldata import ExternalDataSourceResponse
from cognite_toolkit._cdf_tk.client.resource_classes.externaldata import (
ExternalDataSourceRequest,
ExternalDataSourceResponse,
)
from cognite_toolkit._cdf_tk.client.resource_classes.extraction_pipeline import (
ExtractionPipelineRequest,
ExtractionPipelineResponse,
Expand Down Expand Up @@ -322,6 +326,8 @@
# For channels, we only have list, thus these cannot be
# generically tested.
AlertChannelsAPI,
# Do not have secret in the response, so cannot be recreated from the response.
TransformationExternalDataSourcesAPI,
}
)

Expand Down Expand Up @@ -2063,6 +2069,47 @@ def test_transformation_crudls(self, toolkit_client: ToolkitClient) -> None:
client.tool.transformations.schedules.delete([schedule_id], ignore_unknown_ids=True)
client.tool.transformations.delete([transformation_id], ignore_unknown_ids=True)

def test_transformation_external_data_source_crudls(self, toolkit_client: ToolkitClient) -> None:
client = toolkit_client

data_source_example = get_examples_minimum_requests(ExternalDataSourceResponse)[0]
data_source_request = ExternalDataSourceRequest.model_validate(data_source_example)
data_source_id = data_source_request.as_id()

try:
# Create external data source
create_endpoint = client.tool.transformations.external_data_sources._method_endpoint_map["create"]
try:
created = client.tool.transformations.external_data_sources.create([data_source_request])
except ToolkitAPIError as e:
if e.code != 500:
raise EndpointAssertionError(
create_endpoint.path,
f"Transformation external data source no longer returns 500. Error: {e!s}. Update the smoke tests to reflect the new behavior.",
)
pytest.skip("Transformation external data source creation is not supported in this project.")
if len(created) != 1:
raise EndpointAssertionError(
create_endpoint.path, f"Expected 1 created external data source, got {len(created)}"
)
if created[0].as_id() != data_source_id:
raise EndpointAssertionError(
create_endpoint.path, "Created external data source ID does not match requested ID."
)
# List external data sources
list_endpoint = client.tool.transformations.external_data_sources._method_endpoint_map["list"]
try:
listed = list(client.tool.transformations.external_data_sources.list(limit=1))
except ToolkitAPIError:
raise EndpointAssertionError(list_endpoint.path, "Listing external data sources failed.")
if len(listed) == 0:
raise EndpointAssertionError(
list_endpoint.path, "Expected at least 1 listed external data source, got 0"
)
finally:
# Clean up
client.tool.transformations.external_data_sources.delete([data_source_id], ignore_unknown_ids=True)

def test_datapoints_subscription_crudl(self, toolkit_client: ToolkitClient) -> None:
client = toolkit_client

Expand Down
3 changes: 3 additions & 0 deletions tests_smoke/test_commands/test_migrate_file.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import time
from collections.abc import Iterator
from pathlib import Path

Expand Down Expand Up @@ -122,6 +123,8 @@ def test_migrate_file(
migrated_node = nodes[0]
if migrated_node.external_id != file.external_id:
raise AssertionError("Migrated file instance external ID does not match expected value.")

time.sleep(5) # Wait for eventual consistency in CDF before downloading content
content = client.files.download_bytes(instance_id=dm.NodeId(space, external_id=file.external_id))
if content != b"Toolkit classic file content for migration smoke test.":
raise AssertionError("Migrated file content does not match expected content.")
Expand Down
Loading