22
22
23
23
import conftest
24
24
from obs import CreateBucketHeader , GetObjectHeader , ObsClient , UploadFileHeader , \
25
- Expiration , NoncurrentVersionExpiration , AbortIncompleteMultipartUpload , DateTime , \
26
- Rule , Lifecycle
25
+ Expiration , NoncurrentVersionExpiration , AbortIncompleteMultipartUpload , DateTime , \
26
+ Rule , Lifecycle
27
27
28
28
from conftest import test_config
29
29
@@ -62,8 +62,8 @@ def test_create_PFS_bucket(self, delete_bucket_after_test):
62
62
def test_delete_posix_folder (self ):
63
63
client_type , uploadClient , deleteClient = self .get_client ()
64
64
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"
67
67
upload_result1 = uploadClient .putContent (bucket_name , file1 , content = 'Hello OBS' )
68
68
assert upload_result1 .status == 200
69
69
upload_result2 = uploadClient .putContent (bucket_name , file2 , content = 'Hello OBS' )
@@ -72,7 +72,6 @@ def test_delete_posix_folder(self):
72
72
assert len (delete_list ) == 3
73
73
assert len (error_list ) == 0
74
74
75
-
76
75
def test_create_object_bucket (self , delete_bucket_after_test ):
77
76
_ , uploadClient , _ = self .get_client ()
78
77
bucket_name = test_config ["bucket_prefix" ] + "create-pfs-002"
@@ -421,21 +420,104 @@ def test_putFile_with_content_type(self):
421
420
422
421
assert new_content_list == old_content_list
423
422
424
-
425
-
426
423
def test_setBucketLifecycle_and_getBucketLifecycle_success (self ):
427
424
client_type , bucketLifecycleClient , obsClient = self .get_client ()
428
425
rule1 = Rule (id = 'rule1' , prefix = 'prefix1' , status = 'Enabled' , expiration = Expiration (days = 60 ),
429
- noncurrentVersionExpiration = NoncurrentVersionExpiration (10 ))
426
+ noncurrentVersionExpiration = NoncurrentVersionExpiration (10 ))
430
427
rule2 = Rule (id = 'rule2' , prefix = 'prefix2' , status = 'Enabled' , expiration = Expiration (date = DateTime (2023 , 12 , 31 )),
431
- abortIncompleteMultipartUpload = AbortIncompleteMultipartUpload (10 ))
428
+ abortIncompleteMultipartUpload = AbortIncompleteMultipartUpload (10 ))
432
429
lifecycle = Lifecycle (rule = [rule1 , rule2 ])
433
430
set_rul_result = bucketLifecycleClient .setBucketLifecycle (test_config ["bucketName" ], lifecycle )
434
431
assert set_rul_result .status == 200
435
432
get_rul_result = bucketLifecycleClient .getBucketLifecycle (test_config ["bucketName" ])
436
433
assert get_rul_result .status == 200
437
434
assert get_rul_result .body .lifecycleConfig .rule [1 ].abortIncompleteMultipartUpload .daysAfterInitiation == 10
438
435
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' )
439
521
440
522
if __name__ == "__main__" :
441
523
pytest .main (["-v" , 'test_obs_client.py::TestOBSClient::test_uploadFile_with_metadata' ])
0 commit comments