2222
2323import conftest
2424from obs import CreateBucketHeader , GetObjectHeader , ObsClient , UploadFileHeader , \
25- Expiration , NoncurrentVersionExpiration , AbortIncompleteMultipartUpload , DateTime , \
26- Rule , Lifecycle
25+ Expiration , NoncurrentVersionExpiration , AbortIncompleteMultipartUpload , DateTime , \
26+ Rule , Lifecycle
2727
2828from conftest import test_config
2929
@@ -62,8 +62,8 @@ def test_create_PFS_bucket(self, delete_bucket_after_test):
6262 def test_delete_posix_folder (self ):
6363 client_type , uploadClient , deleteClient = self .get_client ()
6464 bucket_name = test_config ["bucketName" ]
65- file1 = test_config ["path_prefix" ] + "file-001"
66- file2 = test_config ["path_prefix" ] + "file-002"
65+ file1 = test_config ["path_prefix" ] + "file-001"
66+ file2 = test_config ["path_prefix" ] + "file-002"
6767 upload_result1 = uploadClient .putContent (bucket_name , file1 , content = 'Hello OBS' )
6868 assert upload_result1 .status == 200
6969 upload_result2 = uploadClient .putContent (bucket_name , file2 , content = 'Hello OBS' )
@@ -72,7 +72,6 @@ def test_delete_posix_folder(self):
7272 assert len (delete_list ) == 3
7373 assert len (error_list ) == 0
7474
75-
7675 def test_create_object_bucket (self , delete_bucket_after_test ):
7776 _ , uploadClient , _ = self .get_client ()
7877 bucket_name = test_config ["bucket_prefix" ] + "create-pfs-002"
@@ -421,21 +420,104 @@ def test_putFile_with_content_type(self):
421420
422421 assert new_content_list == old_content_list
423422
424-
425-
426423 def test_setBucketLifecycle_and_getBucketLifecycle_success (self ):
427424 client_type , bucketLifecycleClient , obsClient = self .get_client ()
428425 rule1 = Rule (id = 'rule1' , prefix = 'prefix1' , status = 'Enabled' , expiration = Expiration (days = 60 ),
429- noncurrentVersionExpiration = NoncurrentVersionExpiration (10 ))
426+ noncurrentVersionExpiration = NoncurrentVersionExpiration (10 ))
430427 rule2 = Rule (id = 'rule2' , prefix = 'prefix2' , status = 'Enabled' , expiration = Expiration (date = DateTime (2023 , 12 , 31 )),
431- abortIncompleteMultipartUpload = AbortIncompleteMultipartUpload (10 ))
428+ abortIncompleteMultipartUpload = AbortIncompleteMultipartUpload (10 ))
432429 lifecycle = Lifecycle (rule = [rule1 , rule2 ])
433430 set_rul_result = bucketLifecycleClient .setBucketLifecycle (test_config ["bucketName" ], lifecycle )
434431 assert set_rul_result .status == 200
435432 get_rul_result = bucketLifecycleClient .getBucketLifecycle (test_config ["bucketName" ])
436433 assert get_rul_result .status == 200
437434 assert get_rul_result .body .lifecycleConfig .rule [1 ].abortIncompleteMultipartUpload .daysAfterInitiation == 10
438435
436+ def test_setAccessLabel_success (self ):
437+ client_type , accessLabelClient , obsClient = self .get_client ()
438+ accessLabelList = ['role_label_01' , 'role_label_02' ]
439+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir1/' )
440+ set_al_result = accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir1' , accessLabelList )
441+ assert set_al_result .status == 204
442+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir1/' )
443+
444+ def test_setAccessLabel_fail (self ):
445+ client_type , accessLabelClient , obsClient = self .get_client ()
446+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir1/' )
447+ obsClient .putContent ('pythonsdktestbucket-posix' , 'file1' , content = '123' )
448+ set_al_result1 = accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir1' , ['role-label-01' ])
449+ assert set_al_result1 .status == 400
450+ set_al_result2 = accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir1' ,
451+ ['abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ' ])
452+ assert set_al_result2 .status == 400
453+ set_al_result3 = accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir1' ,
454+ ["role_label_" + str (i + 1 ) for i in range (513 )])
455+ assert set_al_result3 .status == 405
456+ set_al_result4 = accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'file1' ,
457+ ['role_label_01' , 'role_label_02' ])
458+ assert set_al_result4 .status == 405
459+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir1/' )
460+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'file1' )
461+
462+ def test_getAccessLabel_success (self ):
463+ client_type , accessLabelClient , obsClient = self .get_client ()
464+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir1/' )
465+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir2/' )
466+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir3/' )
467+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir4/' )
468+ accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir1' , ['role_label_01' , 'role_label_02' ])
469+ get_al_result1 = accessLabelClient .getAccessLabel ('pythonsdktestbucket-posix' , 'dir1' )
470+ assert get_al_result1 .status == 200
471+ assert get_al_result1 .body ['accesslabel' ] == ['role_label_01' , 'role_label_02' ]
472+ accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir2' ,
473+ ['abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ])
474+ get_al_result2 = accessLabelClient .getAccessLabel ('pythonsdktestbucket-posix' , 'dir2' )
475+ assert get_al_result2 .status == 200
476+ assert get_al_result2 .body ['accesslabel' ] == ['abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ]
477+ accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir3' ,
478+ ["role_label_" + str (i + 1 ) for i in range (512 )])
479+ get_al_result3 = accessLabelClient .getAccessLabel ('pythonsdktestbucket-posix' , 'dir3' )
480+ assert get_al_result3 .status == 200
481+ assert get_al_result3 .body ['accesslabel' ] == ["role_label_" + str (i + 1 ) for i in range (512 )]
482+ accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir4' ,
483+ ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW" + str (i + 1 ) for i in
484+ range (512 )])
485+ get_al_result4 = accessLabelClient .getAccessLabel ('pythonsdktestbucket-posix' , 'dir4' )
486+ assert get_al_result4 .status == 200
487+ assert get_al_result4 .body ['accesslabel' ] == ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW" + str (i + 1 ) for
488+ i in range (512 )]
489+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir1/' )
490+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir2/' )
491+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir3/' )
492+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir4/' )
493+
494+ def test_getAccessLabel_fail (self ):
495+ client_type , accessLabelClient , obsClient = self .get_client ()
496+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir1/' )
497+ get_al_result = accessLabelClient .getAccessLabel ('pythonsdktestbucket-posix' , 'dir1' )
498+ assert get_al_result .status == 404
499+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir1/' )
500+
501+ def test_deleteAccessLabel_success (self ):
502+ client_type , accessLabelClient , obsClient = self .get_client ()
503+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir1/' )
504+ obsClient .putContent ('pythonsdktestbucket-posix' , 'dir2/' )
505+ accessLabelClient .setAccessLabel ('pythonsdktestbucket-posix' , 'dir1' , ['role_label_01' , 'role_label_02' ])
506+ del_al_result1 = accessLabelClient .deleteAccessLabel ('pythonsdktestbucket-posix' , 'dir1' )
507+ del_al_result2 = accessLabelClient .deleteAccessLabel ('pythonsdktestbucket-posix' , 'dir2' )
508+ del_al_result3 = accessLabelClient .deleteAccessLabel ('pythonsdktestbucket-posix' , 'dir3' )
509+ assert del_al_result1 .status == 204
510+ assert del_al_result2 .status == 204
511+ assert del_al_result3 .status == 204
512+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir1/' )
513+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'dir2/' )
514+
515+ def test_deleteAccessLabel_fail (self ):
516+ client_type , accessLabelClient , obsClient = self .get_client ()
517+ obsClient .putContent ('pythonsdktestbucket-posix' , 'file1' , content = '123' )
518+ del_al_result1 = accessLabelClient .deleteAccessLabel ('pythonsdktestbucket-posix' , 'file1' )
519+ assert del_al_result1 .status == 405
520+ obsClient .deleteObject ('pythonsdktestbucket-posix' , 'file1' )
439521
440522if __name__ == "__main__" :
441523 pytest .main (["-v" , 'test_obs_client.py::TestOBSClient::test_uploadFile_with_metadata' ])
0 commit comments