@@ -101,6 +101,37 @@ def test_profile_save_load_remove(self):
101101 # remove the profile
102102 tiledb .Profile .remove ("profile2_name" , self .path ("profile2_dir" ))
103103
104+ def test_profile_save_overwrite (self ):
105+ token1 = "testing_the_token_1"
106+ token2 = "testing_the_token_2"
107+ profile_name = "overwrite_test_profile"
108+ profile_dir = self .path ("overwrite_test_dir" )
109+
110+ # Create and save a profile with token1
111+ profile1 = tiledb .Profile (profile_name , profile_dir )
112+ profile1 ["rest.token" ] = token1
113+ profile1 .save ()
114+
115+ # Load it back to verify it was saved
116+ loaded_profile1 = tiledb .Profile .load (profile_name , profile_dir )
117+ assert loaded_profile1 ["rest.token" ] == token1
118+
119+ # Create a new profile with the same name and try to save without overwrite
120+ profile2 = tiledb .Profile (profile_name , profile_dir )
121+ profile2 ["rest.token" ] = token2
122+ with pytest .raises (tiledb .TileDBError ):
123+ profile2 .save (overwrite = False )
124+
125+ # Now save with overwrite=True
126+ profile2 .save (overwrite = True )
127+
128+ # Load it back to verify it was overwritten
129+ loaded_profile2 = tiledb .Profile .load (profile_name , profile_dir )
130+ assert loaded_profile2 ["rest.token" ] == token2
131+
132+ # Clean up
133+ tiledb .Profile .remove (profile_name , profile_dir )
134+
104135
105136class ConfigWithProfileTest (ProfileTestCase ):
106137 def test_config_with_profile (self ):
0 commit comments