@@ -3173,18 +3173,41 @@ def test_delete_dataset_from_studio_not_found(
31733173 assert str (exc_info .value ) == error_message
31743174
31753175
3176+ @pytest .mark .parametrize (
3177+ "update_version,versions" ,
3178+ [
3179+ ("patch" , ["1.0.0" , "1.0.1" , "1.0.2" ]),
3180+ ("minor" , ["1.0.0" , "1.1.0" , "1.2.0" ]),
3181+ ("major" , ["1.0.0" , "2.0.0" , "3.0.0" ]),
3182+ ],
3183+ )
3184+ def test_update_versions (test_session , update_version , versions ):
3185+ ds_name = "fibonacci"
3186+ chain = dc .read_values (fib = [1 , 1 , 2 , 3 , 5 , 8 ], session = test_session )
3187+ chain .save (ds_name , update_version = update_version )
3188+ chain .save (ds_name , update_version = update_version )
3189+ chain .save (ds_name , update_version = update_version )
3190+ assert sorted (
3191+ [
3192+ ds .version
3193+ for ds in dc .datasets (column = "dataset" , session = test_session ).collect (
3194+ "dataset"
3195+ )
3196+ ]
3197+ ) == sorted (versions )
3198+
3199+
31763200def test_update_versions_mix_major_minor_patch (test_session ):
31773201 ds_name = "fibonacci"
31783202 chain = dc .read_values (fib = [1 , 1 , 2 , 3 , 5 , 8 ], session = test_session )
31793203 chain .save (ds_name )
3204+ chain .save (ds_name , update_version = "patch" )
3205+ chain .save (ds_name , update_version = "minor" )
3206+ chain .save (ds_name , update_version = "major" )
3207+ chain .save (ds_name , update_version = "minor" )
3208+ chain .save (ds_name , update_version = "patch" )
31803209 chain .save (ds_name )
3181- chain .save (ds_name , version = "1.1.0" )
3182- chain .save (ds_name )
3183- chain .save (ds_name , version = "2.0.0" )
3184- chain .save (ds_name )
3185- chain .save (ds_name , version = "2.1.0" )
3186- chain .save (ds_name )
3187- chain .save (ds_name )
3210+ chain .save (ds_name , version = "3.0.0" )
31883211 assert sorted (
31893212 [
31903213 ds .version
@@ -3197,16 +3220,27 @@ def test_update_versions_mix_major_minor_patch(test_session):
31973220 "1.0.0" ,
31983221 "1.0.1" ,
31993222 "1.1.0" ,
3200- "1.1.1" ,
32013223 "2.0.0" ,
3202- "2.0.1" ,
32033224 "2.1.0" ,
32043225 "2.1.1" ,
32053226 "2.1.2" ,
3227+ "3.0.0" ,
32063228 ]
32073229 )
32083230
32093231
3232+ def test_update_versions_wrong_value (test_session ):
3233+ ds_name = "fibonacci"
3234+ chain = dc .read_values (fib = [1 , 1 , 2 , 3 , 5 , 8 ], session = test_session )
3235+ chain .save (ds_name )
3236+ with pytest .raises (ValueError ) as excinfo :
3237+ chain .save (ds_name , update_version = "wrong" )
3238+
3239+ assert str (excinfo .value ) == (
3240+ "update_version can have one of the following values: major, minor or patch"
3241+ )
3242+
3243+
32103244def test_from_dataset_version_int_backward_compatible (test_session ):
32113245 ds_name = "numbers"
32123246 dc .read_values (nums = [1 ], session = test_session ).save (ds_name , version = "1.0.0" )
0 commit comments