44import re
55from datetime import UTC , datetime , timedelta
66from pathlib import Path
7+ from time import sleep
78
89import pytest
910from typer .testing import CliRunner
@@ -793,6 +794,9 @@ def test_cli_run_dump_and_update_custom_metadata(runner: CliRunner) -> None:
793794 initial_submission_date = initial_metadata .get ("sdk" , {}).get ("submission" , {}).get ("date" )
794795 initial_updated_at = initial_metadata .get ("sdk" , {}).get ("updated_at" )
795796
797+ # Ensure some time passes to see timestamp changes
798+ sleep (1 )
799+
796800 # Step 3: Add "random" node with a random number
797801 random_value = random .randint (1000 , 9999 )
798802 updated_metadata = initial_metadata .copy ()
@@ -816,12 +820,16 @@ def test_cli_run_dump_and_update_custom_metadata(runner: CliRunner) -> None:
816820 updated_updated_at = metadata_with_random .get ("sdk" , {}).get ("updated_at" )
817821
818822 # created_at and submission.date should NOT change
819- assert updated_created_at == initial_created_at , (
820- f"sdk.created_at should not change: { initial_created_at } -> { updated_created_at } "
821- )
822- assert updated_submission_date == initial_submission_date , (
823- f"sdk.submission.date should not change: { initial_submission_date } -> { updated_submission_date } "
824- )
823+ # Only check created_at immutability if it was set initially
824+ if initial_created_at is not None :
825+ assert updated_created_at == initial_created_at , (
826+ f"sdk.created_at should not change: { initial_created_at } -> { updated_created_at } "
827+ )
828+
829+ if initial_submission_date is not None :
830+ assert updated_submission_date == initial_submission_date , (
831+ f"sdk.submission.date should not change: { initial_submission_date } -> { updated_submission_date } "
832+ )
825833
826834 # updated_at SHOULD change (be more recent)
827835 assert updated_updated_at != initial_updated_at , (
@@ -910,6 +918,9 @@ def test_cli_run_dump_and_update_item_custom_metadata(runner: CliRunner) -> None
910918 initial_created_at = initial_metadata .get ("sdk" , {}).get ("created_at" )
911919 initial_updated_at = initial_metadata .get ("sdk" , {}).get ("updated_at" )
912920
921+ # Ensure some time passes to see timestamp changes
922+ sleep (1 )
923+
913924 # Step 3: Add "random" node with a random number
914925 random_value = random .randint (1000 , 9999 )
915926 updated_metadata = initial_metadata .copy ()
@@ -934,9 +945,10 @@ def test_cli_run_dump_and_update_item_custom_metadata(runner: CliRunner) -> None
934945 updated_updated_at = metadata_with_random .get ("sdk" , {}).get ("updated_at" )
935946
936947 # created_at should NOT change
937- assert updated_created_at == initial_created_at , (
938- f"sdk.created_at should not change: { initial_created_at } -> { updated_created_at } "
939- )
948+ if initial_created_at is not None :
949+ assert updated_created_at == initial_created_at , (
950+ f"sdk.created_at should not change: { initial_created_at } -> { updated_created_at } "
951+ )
940952
941953 # updated_at SHOULD change (be more recent)
942954 assert updated_updated_at != initial_updated_at , (
0 commit comments