From 19e40917f6a7391f925e224d000b4a96a99ba0aa Mon Sep 17 00:00:00 2001 From: anders-albert Date: Sun, 26 Apr 2026 08:44:51 +0200 Subject: [PATCH 1/3] test: fix failing smoke test --- cognite_toolkit/_cdf_tk/client/api/instances.py | 4 ++-- tests_smoke/test_commands/test_migrate_infield.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cognite_toolkit/_cdf_tk/client/api/instances.py b/cognite_toolkit/_cdf_tk/client/api/instances.py index 7cfbd8a146..162bd02bdc 100644 --- a/cognite_toolkit/_cdf_tk/client/api/instances.py +++ b/cognite_toolkit/_cdf_tk/client/api/instances.py @@ -86,7 +86,7 @@ def _validate_page_response( def _validate_response(self, response: SuccessResponse) -> ResponseItems[InstanceDefinitionId]: return ResponseItems[InstanceDefinitionId].model_validate_json(response.body) - def create(self, items: Sequence[InstanceRequest]) -> list[InstanceSlimDefinition]: + def create(self, items: Sequence[InstanceRequest], replace: bool = False) -> list[InstanceSlimDefinition]: """Create instances in CDF. Args: @@ -95,7 +95,7 @@ def create(self, items: Sequence[InstanceRequest]) -> list[InstanceSlimDefinitio List of created InstanceSlimDefinition objects. """ response_items: list[InstanceSlimDefinition] = [] - for response in self._chunk_requests(items, "upsert", self._serialize_items): + for response in self._chunk_requests(items, "upsert", self._serialize_items, extra_body={"replace": replace}): response_items.extend(PagedResponse[InstanceSlimDefinition].model_validate_json(response.body).items) return response_items diff --git a/tests_smoke/test_commands/test_migrate_infield.py b/tests_smoke/test_commands/test_migrate_infield.py index d2936713ef..0c91b7203a 100644 --- a/tests_smoke/test_commands/test_migrate_infield.py +++ b/tests_smoke/test_commands/test_migrate_infield.py @@ -200,14 +200,14 @@ def infield_legacy( for view_id in sorted_views: instance_batch = to_create_by_view_id[view_id] try: - _ = client.tool.instances.create(instance_batch) + _ = client.tool.instances.create(instance_batch, replace=True) except ToolkitAPIError as e: raise AssertionError( f"Failed to create instance batch for view {view_id!s}. Error: {e}. Batch: {[item.as_id() for item in instance_batch]}" ) from e if edges: try: - _ = client.tool.instances.create(edges) + _ = client.tool.instances.create(edges, replace=True) except ToolkitAPIError as e: raise AssertionError( f"Failed to create instance batch for edges with no view. Error: {e}. Batch: {[item.as_id() for item in edges]}" @@ -352,8 +352,15 @@ def test_migrate_data( "InField migration failed. Found source space identifier in destination data, indicating that some instances were not migrated correctly." ) + for instance in destination_instances: + instance.pop("createdTime", None) + data_regression.check({"instances": destination_instances}) + # Cleanup for next run. + destination_node_ids = [node_id for node_ids in destination_by_view_id.values() for node_id in node_ids] + toolkit_client.tool.instances.delete(destination_node_ids) + def _get_destination_nodes( self, infield_legacy: list[InstanceRequest], target_space: SpaceResponse ) -> tuple[dict[ViewId, list[NodeId]], int, list[ViewId]]: From 9389d25c23cdbdb476221ed2b4a8f23feb1efe4d Mon Sep 17 00:00:00 2001 From: anders-albert Date: Sun, 26 Apr 2026 09:32:58 +0200 Subject: [PATCH 2/3] test: fix failing smoke test --- tests_smoke/test_commands/test_migrate_infield.py | 8 ++++---- .../test_migrate_infield/test_migrate_data.yml | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/tests_smoke/test_commands/test_migrate_infield.py b/tests_smoke/test_commands/test_migrate_infield.py index 0c91b7203a..ee393a242e 100644 --- a/tests_smoke/test_commands/test_migrate_infield.py +++ b/tests_smoke/test_commands/test_migrate_infield.py @@ -320,7 +320,10 @@ def test_migrate_data( for node in target_nodes: # Excluding "last_updated_time" and "version" as they will change for each run of the test. dumped = node.model_dump( - mode="json", by_alias=True, exclude_unset=True, exclude={"last_updated_time", "version"} + mode="json", + by_alias=True, + exclude_unset=True, + exclude={"last_updated_time", "version", "createdTime"}, ) for view_properties in dumped.get("properties", {}).values(): for properties in view_properties.values(): @@ -352,9 +355,6 @@ def test_migrate_data( "InField migration failed. Found source space identifier in destination data, indicating that some instances were not migrated correctly." ) - for instance in destination_instances: - instance.pop("createdTime", None) - data_regression.check({"instances": destination_instances}) # Cleanup for next run. diff --git a/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml b/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml index b7b8b8f904..a593f7be11 100644 --- a/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml +++ b/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml @@ -8,6 +8,7 @@ instances: createdBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + isArchived: false item: externalId: 0083e7c3-946f-4d5d-958b-133963108ad9 space: smoke_infield_migration_target_space @@ -15,6 +16,7 @@ instances: sourceCreatedUser: VJZrRM_kByZe-moErWilvg title: any comments ? type: message + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772711569310 externalId: 2A7QpAmrd9eYbbY_zHH_Ag @@ -25,6 +27,7 @@ instances: createdBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + isArchived: false item: externalId: -3Z4iakG1YSFRAfVlazYMA space: smoke_infield_migration_target_space @@ -40,6 +43,7 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772711570095 externalId: 431db206-55d6-4f37-9eff-6e7fd4bb37c7 @@ -100,6 +104,7 @@ instances: test description character limitation test description character limitation test description character limitation test description character limitation test 111111111111111111111111111111111111 + isArchived: false labels: - group:one Task group order: 141 @@ -111,6 +116,7 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772711568422 externalId: RhIUePwMQI0WDEQQv-xkig @@ -137,6 +143,7 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772711572850 externalId: -3Z4iakG1YSFRAfVlazYMA @@ -170,6 +177,7 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772715784353 externalId: -iExvo-uJ5JqMTPL2OYN-g @@ -184,6 +192,7 @@ instances: createdBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + isArchived: false parameters: message: 'item is not okay ' sourceCreatedUser: VJZrRM_kByZe-moErWilvg @@ -191,6 +200,7 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772715777591 externalId: 1DC026YVbKG3QYAOMzJoXw @@ -198,10 +208,12 @@ instances: properties: cdf_infield: ConditionalAction/v1: + isArchived: false logic: or parentObject: externalId: RhIUePwMQI0WDEQQv-xkig space: smoke_infield_migration_target_space + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1772715785819 externalId: dSq9c2wTh6geOGOIdh11yHhHXKEPWPfX1A8I317N9Sc_IrDfZSISoOzW9PPS3OpYnTAGShkwDS3bB4A49NONUyA_5_J63kPbDgRGDH0bCu8X2s5uLi8iQUm3uXdb6LArzAM_CzTrvN_VceSKRS45WPcooFlsmSgfL5l2aoWsLZmHdKo @@ -213,12 +225,14 @@ instances: externalId: 1DC026YVbKG3QYAOMzJoXw space: smoke_infield_migration_target_space field: status + isArchived: false operator: equals source: externalId: -3Z4iakG1YSFRAfVlazYMA space: smoke_infield_migration_target_space sourceView: cdf_infield/ChecklistItem/v1 value: Not applicable + visibility: PUBLIC space: smoke_infield_migration_target_space - createdTime: 1776149020700 externalId: ae818e1b-82e7-446d-a645-05f0752d2c45 From f323b0ea03b40ee7a99845f71ab998e2656a1db8 Mon Sep 17 00:00:00 2001 From: anders-albert Date: Sun, 26 Apr 2026 09:59:27 +0200 Subject: [PATCH 3/3] tests: fix and regen --- .../test_commands/test_migrate_infield.py | 6 +-- .../test_migrate_data.yml | 47 +++++-------------- 2 files changed, 14 insertions(+), 39 deletions(-) diff --git a/tests_smoke/test_commands/test_migrate_infield.py b/tests_smoke/test_commands/test_migrate_infield.py index ee393a242e..5d16ad2f05 100644 --- a/tests_smoke/test_commands/test_migrate_infield.py +++ b/tests_smoke/test_commands/test_migrate_infield.py @@ -323,7 +323,7 @@ def test_migrate_data( mode="json", by_alias=True, exclude_unset=True, - exclude={"last_updated_time", "version", "createdTime"}, + exclude={"last_updated_time", "version", "created_time"}, ) for view_properties in dumped.get("properties", {}).values(): for properties in view_properties.values(): @@ -355,12 +355,12 @@ def test_migrate_data( "InField migration failed. Found source space identifier in destination data, indicating that some instances were not migrated correctly." ) - data_regression.check({"instances": destination_instances}) - # Cleanup for next run. destination_node_ids = [node_id for node_ids in destination_by_view_id.values() for node_id in node_ids] toolkit_client.tool.instances.delete(destination_node_ids) + data_regression.check({"instances": destination_instances}) + def _get_destination_nodes( self, infield_legacy: list[InstanceRequest], target_space: SpaceResponse ) -> tuple[dict[ViewId, list[NodeId]], int, list[ViewId]]: diff --git a/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml b/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml index a593f7be11..726bd67033 100644 --- a/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml +++ b/tests_smoke/test_commands/test_migrate_infield/test_migrate_data.yml @@ -1,6 +1,5 @@ instances: -- createdTime: 1772711569310 - externalId: 8c73bd6c-7386-4ebe-ba56-0ef088f08150 +- externalId: 8c73bd6c-7386-4ebe-ba56-0ef088f08150 instanceType: node properties: cdf_infield: @@ -8,7 +7,6 @@ instances: createdBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - isArchived: false item: externalId: 0083e7c3-946f-4d5d-958b-133963108ad9 space: smoke_infield_migration_target_space @@ -16,10 +14,8 @@ instances: sourceCreatedUser: VJZrRM_kByZe-moErWilvg title: any comments ? type: message - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772711569310 - externalId: 2A7QpAmrd9eYbbY_zHH_Ag +- externalId: 2A7QpAmrd9eYbbY_zHH_Ag instanceType: node properties: cdf_infield: @@ -27,7 +23,6 @@ instances: createdBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - isArchived: false item: externalId: -3Z4iakG1YSFRAfVlazYMA space: smoke_infield_migration_target_space @@ -43,10 +38,8 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772711570095 - externalId: 431db206-55d6-4f37-9eff-6e7fd4bb37c7 +- externalId: 431db206-55d6-4f37-9eff-6e7fd4bb37c7 instanceType: node properties: cdf_infield: @@ -67,8 +60,7 @@ instances: space: smoke_infield_migration_target_space timezone: Asia/Colombo space: smoke_infield_migration_target_space -- createdTime: 1772711570808 - externalId: 87f1ce17-c510-4359-9bbe-2ec7477b2cfe +- externalId: 87f1ce17-c510-4359-9bbe-2ec7477b2cfe instanceType: node properties: cdf_infield: @@ -87,8 +79,7 @@ instances: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data space: smoke_infield_migration_target_space -- createdTime: 1772711573447 - externalId: 0083e7c3-946f-4d5d-958b-133963108ad9 +- externalId: 0083e7c3-946f-4d5d-958b-133963108ad9 instanceType: node properties: cdf_infield: @@ -104,7 +95,6 @@ instances: test description character limitation test description character limitation test description character limitation test description character limitation test 111111111111111111111111111111111111 - isArchived: false labels: - group:one Task group order: 141 @@ -116,10 +106,8 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772711568422 - externalId: RhIUePwMQI0WDEQQv-xkig +- externalId: RhIUePwMQI0WDEQQv-xkig instanceType: node properties: cdf_infield: @@ -143,10 +131,8 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772711572850 - externalId: -3Z4iakG1YSFRAfVlazYMA +- externalId: -3Z4iakG1YSFRAfVlazYMA instanceType: node properties: cdf_infield: @@ -177,10 +163,8 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772715784353 - externalId: -iExvo-uJ5JqMTPL2OYN-g +- externalId: -iExvo-uJ5JqMTPL2OYN-g instanceType: node properties: cdf_infield: @@ -192,7 +176,6 @@ instances: createdBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - isArchived: false parameters: message: 'item is not okay ' sourceCreatedUser: VJZrRM_kByZe-moErWilvg @@ -200,23 +183,18 @@ instances: updatedBy: externalId: VJZrRM_kByZe-moErWilvg space: cognite_app_data - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772715777591 - externalId: 1DC026YVbKG3QYAOMzJoXw +- externalId: 1DC026YVbKG3QYAOMzJoXw instanceType: node properties: cdf_infield: ConditionalAction/v1: - isArchived: false logic: or parentObject: externalId: RhIUePwMQI0WDEQQv-xkig space: smoke_infield_migration_target_space - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1772715785819 - externalId: dSq9c2wTh6geOGOIdh11yHhHXKEPWPfX1A8I317N9Sc_IrDfZSISoOzW9PPS3OpYnTAGShkwDS3bB4A49NONUyA_5_J63kPbDgRGDH0bCu8X2s5uLi8iQUm3uXdb6LArzAM_CzTrvN_VceSKRS45WPcooFlsmSgfL5l2aoWsLZmHdKo +- externalId: dSq9c2wTh6geOGOIdh11yHhHXKEPWPfX1A8I317N9Sc_IrDfZSISoOzW9PPS3OpYnTAGShkwDS3bB4A49NONUyA_5_J63kPbDgRGDH0bCu8X2s5uLi8iQUm3uXdb6LArzAM_CzTrvN_VceSKRS45WPcooFlsmSgfL5l2aoWsLZmHdKo instanceType: node properties: cdf_infield: @@ -225,17 +203,14 @@ instances: externalId: 1DC026YVbKG3QYAOMzJoXw space: smoke_infield_migration_target_space field: status - isArchived: false operator: equals source: externalId: -3Z4iakG1YSFRAfVlazYMA space: smoke_infield_migration_target_space sourceView: cdf_infield/ChecklistItem/v1 value: Not applicable - visibility: PUBLIC space: smoke_infield_migration_target_space -- createdTime: 1776149020700 - externalId: ae818e1b-82e7-446d-a645-05f0752d2c45 +- externalId: ae818e1b-82e7-446d-a645-05f0752d2c45 instanceType: node properties: cdf_infield: