
                             S 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SK
Jr  SSK
Jr   " S	 S
\R                  5      rg)"Integration tests for pap command.    )absolute_importN)	SkipForGS)SkipForJSON)
SkipForXML)ObjectToURI)SetBotoConfigForTestc                      \ rS rSrSrSS/rSS/r\" S5      S 5       r\" S5      S 5       r	\" S5      S	 5       r
\" S5      S
 5       r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       rS rS rS rS rSrg)TestPublicAccessPrevention   r   papsetgetz2Public access prevention only runs on GCS JSON APIc                 H    U R                  5       nU R                  US5        g )N	inherited)CreateBucket!VerifyPublicAccessPreventionValueself
bucket_uris     'platform/gsutil/gslib/tests/test_pap.pytest_off_on_default_buckets6TestPublicAccessPrevention.test_off_on_default_buckets!   s     ""$J**:{C    c                     U R                  SSS9nU R                  US5        U R                  U R                  S[	        U5      /-   5        U R                  US5        g )NenforcedT)public_access_preventionprefer_json_apir   )r   r   	RunGsUtil_set_pap_cmdsurir   s     r   #test_turning_off_on_enabled_buckets>TestPublicAccessPrevention.test_turning_off_on_enabled_buckets&   s]    ""J37 # 9J**:zBNN4$$T*5E'FFG**:{Cr   c                     U R                  5       nU R                  U R                  S[        U5      /-   5        U R	                  US5        g )Nr   r   r   r    r!   r   r   s     r   test_turning_on*TestPublicAccessPrevention.test_turning_on/   sA    ""$JNN4$$
D4D'EEF**:zBr   c                    U R                  5       nU R                  U R                  S[        U5      /-   5        U R	                  US5        U R                  U R                  S[        U5      /-   5        U R	                  US5        g )Nr   r   r%   r   s     r   test_turning_on_and_off2TestPublicAccessPrevention.test_turning_on_and_off5   sr    ""$JNN4$$
D4D'EEF**:zBNN4$$T*5E'FFG**:{Cr   c                    U R                  5       nU R                  5       nU R                  U R                  [        U5      [        U5      /-   SS9nU R	                  US[        U5      -  5        U R	                  US[        U5      -  5        g )NT)return_stdoutz%s:\s+inherited)r   r   _get_pap_cmdr!   assertRegex)r   bucket_uri1bucket_uri2stdouts       r   test_multiple_buckets0TestPublicAccessPrevention.test_multiple_buckets?   s    ##%K##%K^^	k	D-.	/  F 	V/${2CCDV/${2CCDr   zTesting XML only behaviorc                     / SQn[        U5         SnU R                  U R                  SU/-   SSS9nU R                  SU5        U R                  U R                  U/-   SSS9nU R                  SU5        S S S 5        g ! , (       d  f       g = f)N))Credentialsgs_oauth2_refresh_tokenN)r5   gs_service_client_idN)r5   gs_service_key_fileN)r5   gs_service_key_file_passwordN)r5   gs_access_key_iddummykey)r5   gs_secret_access_keydummysecretzgs://any-bucket-namer   T   return_stderrexpected_statusz3command can only be with the Cloud Storage JSON API)r	   r   r    assertInr-   )r   boto_config_hmac_auth_onlyr   stderrs       r   test_xml_fails)TestPublicAccessPrevention.test_xml_failsJ   s    	" 
8	9)j~~d//;
2KK,0./  1f mmI ~~d//:,>,0./  1f mmI 
:	9	9s   A&A??
BzTesting S3 only behaviorc                 z   U R                  5       nU R                  U R                  S[        U5      /-   SSS9nU R                  (       a  U R                  SU5        OU R                  SU5        U R                  (       d;  U R                  U R                  [        U5      /-   SSS9nU R                  SU5        g g )Nr   Tr>   r?   zFlags disallowed for S3z(command can only be used for GCS Buckets)r   r   r    r!   _use_gcloud_storagerB   r-   )r   r   rD   s      r   test_s3_fails(TestPublicAccessPrevention.test_s3_failse   s    ""$J^^D--($z*:;<*.,-  /F 
mm-v6
mm>G## ~~d//4
3C2DD,0./  1f mm>G $r   c                 ^    U R                  U R                  SSS9nU R                  SU5        g NTr>   r?   command requires at least)r   r    rB   r   rD   s     r    test_set_too_few_arguments_fails;TestPublicAccessPrevention.test_set_too_few_arguments_failsy   4    ^^D--*.,-  /F 	MM-v6r   c                 ^    U R                  U R                  SSS9nU R                  SU5        g rL   )r   r-   rB   rN   s     r    test_get_too_few_arguments_fails;TestPublicAccessPrevention.test_get_too_few_arguments_fails   rQ   r   c                 L    U R                  S/SSS9nU R                  SU5        g )Nr   Tr>   r?   rM   r   rB   rN   s     r   test_no_subcommand_fails3TestPublicAccessPrevention.test_no_subcommand_fails   s'    ^^UG4^KFMM-v6r   c                 N    U R                  / SQSSS9nU R                  SU5        g )N)r   fakecommandtestTr>   r?   zInvalid subcommandrV   rN   s     r   test_invalid_subcommand_fails8TestPublicAccessPrevention.test_invalid_subcommand_fails   s/    ^^:*.,-  /F 	MM&/r    N)__name__
__module____qualname____firstlineno____doc__r    r-   r   r   r"   r&   r)   r2   r   rE   r   rI   rO   rS   rW   r\   __static_attributes__r^   r   r   r   r      s    *,,BCD DD BCD DD BCC DC
 BCD DD BCE DE *+ ,4 '(H )H&7770r   r   )rc   
__future__r   gslib.tests.testcaseteststestcase)gslib.tests.testcase.integration_testcaser   r   r   gslib.tests.utilr   r!   r	   GsUtilIntegrationTestCaser   r^   r   r   <module>rl      s6    ) & ' ' ? A @ 0 1r0!C!C r0r   