
                             S r SSKJr  SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSK	J
s  Jr  SSKJr  SS	KJr  SS
KJr  \" S5       " S S\R$                  5      5       rg).Integration tests for defstorageclass command.    )absolute_import)print_function)division)unicode_literalsN)skipIf)	SkipForS3)
SkipForXML)ObjectToURIz2S3 does not support storage class at bucket level.c                   F    \ rS rSrSrSS/rSS/rS rS rS r	S	 r
S
 rSrg)TestDefStorageClass   r   defstorageclasssetgetc           	         U R                  5       nSnU R                  U R                  U[        U5      /-   SS9nU R                  (       d0  U R                  USU< S[        U5      < 3[        R                  S9  U R                  U R                  [        U5      /-   SS9nU R                  U[        U5      < SU< 3[        R                  S9  g 	NnearlineT)return_stderrz"Setting default storage class to "z" for bucket )flags)return_stdoutz:\s+	CreateBucket	RunGsUtil_set_dsc_cmdsuri_use_gcloud_storageassertRegexpMatchesWithFlagsre
IGNORECASE_get_dsc_cmd)self
bucket_urinew_storage_classstderrstdouts        3platform/gsutil/gslib/tests/test_defstorageclass.pytest_set_and_get_for_one_bucket3TestDefStorageClass.test_set_and_get_for_one_bucket&   s    ""$J"^^	D,-	.  F ##
''
d:.0	 (  ^^D--j1A0BB*.  0F%%f'+J'79J'L,.MM & ;    c                 B   U R                  5       nU R                  5       nSnU R                  U R                  U[        U5      [        U5      /-   SS9n[        U5      [        U5      4 H=  nU R                  (       a  M  U R                  USU< SU< 3[        R                  S9  M?     U R                  U R                  [        U5      [        U5      /-   SS9n[        U5      [        U5      4 H)  nU R                  UU< SU< 3[        R                  S9  M+     g r   r   )r"   bucket1_uribucket2_urir$   r%   r#   r&   s          r'   %test_set_and_get_for_multiple_buckets9TestDefStorageClass.test_set_and_get_for_multiple_buckets=   s+   ##%K##%K"^^		k		k			   F K(${*;<
%%%))
,--	 	* 	! = ^^	k	D-.	/  F K(${*;<

'')35F)H.0mm ( = =r*   c                     U R                  5       nU R                  U R                  S[        U5      /-   SSS9nU R                  (       a  U R                  SU5        g U R                  SU5        g )NinvalidclassT   r   expected_statuszInvalid storage classzBadRequestException: 400)r   r   r   r   r   assertIn)r"   r#   r%   s      r'   $test_set_invalid_storage_class_fails8TestDefStorageClass.test_set_invalid_storage_class_fails[   sl    ""$J^^D--+T*-=>?*.,-  /F 
mm+V4
mm.7r*   c                 L   U R                  U R                  SSS9nU R                  SU5        U R                  (       a  SnSnOSnSnU R                  U R                  S/-   SUS9nU R                  X15        U R                  U R                  SSS9nU R                  SU5        g )NTr2   r3   zcommand requires at least   z)argument URL [URL ...]: Must be specifiedstd)r   r   r5   r   r!   )r"   r%   r4   expected_error_strings       r'   test_too_few_arguments_fails0TestDefStorageClass.test_too_few_arguments_failsf   s    ^^D--*.,-  /F 	MM-v6 oIo9^^D--7*.,;  =F 	MM'0 ^^D--*.,-  /F 	MM-v6r*   c                     SnSU-  nU R                  U R                  U/-   SSS9nU R                  X#5        U R                  U R                  SU/-   SSS9nU R                  X#5        g )Nzs3://somebucketzdoes not support the URL "%s"Tr2   r3   ClassFoo)r   r!   r5   r   )r"   s3_bucket_urlfailure_msgr%   s       r'   !test_helpful_failure_with_s3_urls5TestDefStorageClass.test_helpful_failure_with_s3_urls   s    %M1MAK^^D--?*.,-  /F 	MM+&^^D--]0KK*.,-  /F 	MM+&r*    N)__name__
__module____qualname____firstlineno____doc__r   r!   r(   r.   r6   r<   rB   __static_attributes__rD   r*   r'   r   r      s2    6#U+,#U+,;.=<	872'r*   r   )rI   
__future__r   r   r   r   r   unittestr   gslib.tests.testcaseteststestcase)gslib.tests.testcase.integration_testcaser	   r
   gslib.tests.utilr   r   GsUtilIntegrationTestCaser   rD   r*   r'   <module>rS      sV    5 & %  ' 	  ' ' ? @ 0 ?@j'(<< j' Aj'r*   