
                             d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlmZ ddl	m
c mZ ddlmZ dd	lmZ dd
lmZ  ed       G d dej$                               Zy).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                   >    e Zd ZdZddgZddgZd Zd Zd Zd Z	d	 Z
y
)TestDefStorageClassr   defstorageclasssetgetc           	         | j                         }d}| j                  | j                  |t        |      gz   d      }| j                  s1| j                  |d|dt        |      t        j                         | j                  | j                  t        |      gz   d      }| j                  |t        |      d|t        j                         y 	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_bucketz3TestDefStorageClass.test_set_and_get_for_one_bucket&   s    ""$J"^^	D,-	.  F ##
''
d:.0	 (  ^^D--j1A0BB*.  0F%%f'+J'79J'L,.MM & ;    c                 >   | j                         }| j                         }d}| j                  | j                  |t        |      t        |      gz   d      }t        |      t        |      fD ]7  }| j                  r| j                  |d|d|t        j                         9 | j                  | j                  t        |      t        |      gz   d      }t        |      t        |      fD ])  }| j                  ||d|t        j                         + y r   r   )r!   bucket1_uribucket2_urir#   r$   r"   r%   s          r&   %test_set_and_get_for_multiple_bucketsz9TestDefStorageClass.test_set_and_get_for_multiple_buckets=   s(   ##%K##%K"^^		k		k			   F K(${*;<
%%))
,--	 	* 	! = ^^	k	D-.	/  F K(${*;<

'')35F)H.0mm ( = =r(   c                     | j                         }| j                  | j                  dt        |      gz   dd      }| j                  r| j                  d|       y | j                  d|       y )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_failsz8TestDefStorageClass.test_set_invalid_storage_class_fails[   sl    ""$J^^D--+T*-=>?*.,-  /F 
mm+V4
mm.7r(   c                 V   | j                  | j                  dd      }| j                  d|       | j                  rd}d}nd}d}| j                  | j                  dgz   d|      }| j                  ||       | j                  | j                  dd      }| j                  d|       y )NTr/   r0   zcommand requires at least   z)argument URL [URL ...]: Must be specifiedstd)r   r   r2   r   r    )r!   r$   r1   expected_error_strings       r&   test_too_few_arguments_failsz0TestDefStorageClass.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                     d}d|z  }| j                  | j                  |gz   dd      }| j                  ||       | j                  | j                  d|gz   dd      }| j                  ||       y )Nzs3://somebucketzdoes not support the URL "%s"Tr/   r0   ClassFoo)r   r    r2   r   )r!   s3_bucket_urlfailure_msgr$   s       r&   !test_helpful_failure_with_s3_urlsz5TestDefStorageClass.test_helpful_failure_with_s3_urls   s    %M1MAK^^D--?*.,-  /F 	MM+v&^^D--]0KK*.,-  /F 	MM+v&r(   N)__name__
__module____qualname____doc__r   r    r'   r,   r3   r8   r=    r(   r&   r   r      s2    6#U+,#U+,;.=<	872'r(   r   )rA   
__future__r   r   r   r   r   unittestr   gslib.tests.testcaseteststestcase)gslib.tests.testcase.integration_testcaser	   r
   gslib.tests.utilr   r   GsUtilIntegrationTestCaser   rB   r(   r&   <module>rK      sV    5 & %  ' 	  ' ' ? @ 0 ?@j'(<< j' Aj'r(   