1212
1313SECRET_ID = os .environ ["SECRET_ID" ]
1414SECRET_KEY = os .environ ["SECRET_KEY" ]
15- test_bucket = "test01-1252448703"
15+ TRAVIS_FLAG = os .environ ["TRAVIS_FLAG" ]
16+ test_bucket = 'cos-python-v5-test-' + str (sys .version_info [0 ]) + '-' + str (sys .version_info [1 ]) + '-' + '1252448703'
1617test_object = "test.txt"
1718special_file_name = "中文" + "→↓←→↖↗↙↘! \" #$%&'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\ ]^_`abcdefghijklmnopqrstuvwxyz{|}~"
1819conf = CosConfig (
2324client = CosS3Client (conf )
2425
2526
27+ def _create_test_bucket (test_bucket ):
28+ try :
29+ response = client .create_bucket (
30+ Bucket = test_bucket ,
31+ )
32+ except Exception as e :
33+ if e .get_error_code () == 'BucketAlreadyOwnedByYou' :
34+ print ('BucketAlreadyOwnedByYou' )
35+ else :
36+ raise e
37+ return None
38+
39+
2640def get_raw_md5 (data ):
2741 m2 = hashlib .md5 (data )
2842 etag = '"' + str (m2 .hexdigest ()) + '"'
@@ -37,22 +51,24 @@ def gen_file(path, size):
3751
3852
3953def print_error_msg (e ):
40- print e .get_origin_msg ()
41- print e .get_digest_msg ()
42- print e .get_status_code ()
43- print e .get_error_code ()
44- print e .get_error_msg ()
45- print e .get_resource_location ()
46- print e .get_trace_id ()
47- print e .get_request_id ()
54+ print ( e .get_origin_msg () )
55+ print ( e .get_digest_msg () )
56+ print ( e .get_status_code () )
57+ print ( e .get_error_code () )
58+ print ( e .get_error_msg () )
59+ print ( e .get_resource_location () )
60+ print ( e .get_trace_id () )
61+ print ( e .get_request_id () )
4862
4963
5064def setUp ():
51- print "start test..."
65+ print ("start test..." )
66+ print ("start create bucket " + test_bucket )
67+ _create_test_bucket (test_bucket )
5268
5369
5470def tearDown ():
55- print "function teardown"
71+ print ( "function teardown" )
5672
5773
5874def test_put_get_delete_object_10MB ():
@@ -146,6 +162,11 @@ def test_put_object_non_exist_bucket():
146162
147163def test_put_object_acl ():
148164 """设置object acl"""
165+ response = client .put_object (
166+ Bucket = test_bucket ,
167+ Key = test_object ,
168+ Body = 'test acl'
169+ )
149170 response = client .put_object_acl (
150171 Bucket = test_bucket ,
151172 Key = test_object ,
@@ -160,6 +181,10 @@ def test_get_object_acl():
160181 Key = test_object
161182 )
162183 assert response
184+ response = client .delete_object (
185+ Bucket = test_bucket ,
186+ Key = test_object
187+ )
163188
164189
165190def test_copy_object_diff_bucket ():
@@ -352,7 +377,7 @@ def test_get_bucket_acl_normal():
352377def test_list_objects ():
353378 """列出bucket下的objects"""
354379 response = client .list_objects (
355- Bucket = test_bucket ,
380+ Bucket = 'test01-1252448703' ,
356381 MaxKeys = 100 ,
357382 Prefix = '中文' ,
358383 Delimiter = '/'
@@ -376,7 +401,7 @@ def test_get_presigned_url():
376401 Key = '中文.txt'
377402 )
378403 assert url
379- print url
404+ print ( url )
380405
381406
382407def test_get_bucket_location ():
@@ -496,7 +521,7 @@ def test_put_get_delete_replication():
496521 {
497522 'ID' : '123' ,
498523 'Status' : 'Enabled' ,
499- 'Prefix' : 'replication ' ,
524+ 'Prefix' : '中文 ' ,
500525 'Destination' : {
501526 'Bucket' : 'qcs:id/0:cos:cn-south:appid/1252448703:replicationsouth'
502527 }
@@ -516,7 +541,7 @@ def test_put_get_delete_replication():
516541 Bucket = test_bucket
517542 )
518543 assert response
519- # delete lifecycle
544+ # delete replication
520545 response = client .delete_bucket_replication (
521546 Bucket = test_bucket
522547 )
@@ -564,7 +589,10 @@ def test_list_multipart_uploads():
564589def test_upload_file_multithreading ():
565590 """根据文件大小自动选择分块大小,多线程并发上传提高上传速度"""
566591 file_name = "thread_1GB"
567- gen_file (file_name , 5 ) # set 5MB beacuse travis too slow
592+ file_size = 1024
593+ if TRAVIS_FLAG == 'true' :
594+ file_size = 5 # set 5MB beacuse travis too slow
595+ gen_file (file_name , file_size )
568596 st = time .time () # 记录开始时间
569597 response = client .upload_file (
570598 Bucket = test_bucket ,
@@ -577,7 +605,7 @@ def test_upload_file_multithreading():
577605 ed = time .time () # 记录结束时间
578606 if os .path .exists (file_name ):
579607 os .remove (file_name )
580- print ed - st
608+ print ( ed - st )
581609
582610
583611def test_copy_file_automatically ():
@@ -625,7 +653,8 @@ def test_use_get_auth():
625653 Key = 'test.txt' ,
626654 Params = {'acl' : '' , 'unsed' : '123' }
627655 )
628- response = requests .get ('http://test01-1252448703.cos.ap-beijing-1.myqcloud.com/test.txt?acl&unsed=123' , headers = {'Authorization' : auth })
656+ url = 'http://' + test_bucket + '.cos.ap-beijing-1.myqcloud.com/test.txt?acl&unsed=123'
657+ response = requests .get (url , headers = {'Authorization' : auth })
629658 assert response .status_code == 200
630659
631660
@@ -663,16 +692,15 @@ def test_put_get_bucket_logging():
663692 response = logging_client .get_bucket_logging (
664693 Bucket = logging_bucket
665694 )
666- print response
695+ print ( response )
667696 assert response ['LoggingEnabled' ]['TargetBucket' ] == logging_bucket
668697 assert response ['LoggingEnabled' ]['TargetPrefix' ] == 'test'
669698
670699
671700def test_put_object_enable_md5 ():
672701 """上传文件,SDK计算content-md5头部"""
673- file_size = 10
674702 file_name = 'test_object_sdk_caculate_md5.file'
675- gen_file (file_name , 10 )
703+ gen_file (file_name , 1 )
676704 with open (file_name , 'rb' ) as f :
677705 etag = get_raw_md5 (f .read ())
678706 with open (file_name , 'rb' ) as fp :
@@ -703,6 +731,10 @@ def test_put_object_from_local_file():
703731 Key = file_name
704732 )
705733 assert put_response ['ETag' ] == etag
734+ response = client .delete_object (
735+ Bucket = test_bucket ,
736+ Key = file_name
737+ )
706738 if os .path .exists (file_name ):
707739 os .remove (file_name )
708740
0 commit comments