
                             S 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 S	\R                  5      rg)
/Integration tests for bucketpolicyonly command.    )absolute_importN)ApiSelector)ObjectToURI)unittest)Retryc                   L    \ 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Srg)TestBucketPolicyOnly   r   bucketpolicyonlysetgetc                     U R                  U R                  [        U5      /-   SS9n[        R                  " S[        R
                  5      n[        R                  " XC5      nUR                  S5      nU R                  [        U5      U5        g )NT)return_stdoutz#^\s*Enabled:\s+(?P<enabled_val>.+)$enabled_val)
	RunGsUtil_get_bpo_cmdsurirecompile	MULTILINEsearchgroupassertEqualstr)self
bucket_urivaluestdoutbucket_policy_only_rebucket_policy_only_matchbucket_policy_only_vals          4platform/gsutil/gslib/tests/test_bucketpolicyonly.py_AssertEnabled#TestBucketPolicyOnly._AssertEnabled!   s|    ^^D--j1A0BB*.  0FJJ'M')||5!yy)>G5;;MJSZ!78    c                     U R                   [        R                  :X  a  [        R                  " S5      $ U R                  5       nU R                  US5        g )N,XML API has no concept of Bucket Policy OnlyF)test_apir   XMLr   skipCreateBucketr$   r   r   s     r#   test_off_on_default_buckets0TestBucketPolicyOnly.test_off_on_default_buckets*   s@    }}']]IJJ""$J
E*r&   c                 &   U R                   [        R                  :X  a  [        R                  " S5      $ 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 )Nr(   T)bucket_policy_onlyprefer_json_apioffF)
r)   r   r*   r   r+   r,   r$   r   _set_bpo_cmdr   r-   s     r#   #test_turning_off_on_enabled_buckets8TestBucketPolicyOnly.test_turning_off_on_enabled_buckets0   s}    }}']]IJJ""d37 # 9J
D)NN4$$tJ/?'@@A
E*r&   c                    U R                   [        R                  :X  a  [        R                  " S5      $ U R                  5       nU R                  U R                  S[        U5      /-   5        U R                  US5        g )Nr(   onT
r)   r   r*   r   r+   r,   r   r4   r   r$   r-   s     r#   test_turning_on$TestBucketPolicyOnly.test_turning_on:   sa    }}']]IJJ""$JNN4$$d:.>'??@
D)r&   c                 x   U R                   [        R                  :X  a  [        R                  " S5      $ 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(   r8   Tr3   Fr9   r-   s     r#   test_turning_on_and_off,TestBucketPolicyOnly.test_turning_on_and_offC   s    }}']]IJJ""$JNN4$$d:.>'??@
D)NN4$$tJ/?'@@A
E*r&   c                     U R                  U R                  SSS9nU R                  SU5        U R                  U R                  SSS9nU R                  SU5        U R                  S/SSS9nU R                  SU5        g)z>Ensures bucketpolicyonly commands fail with too few arguments.T   )return_stderrexpected_statuszcommand requires at leastr   N)r   r4   assertInr   )r   stderrs     r#   testTooFewArgumentsFails-TestBucketPolicyOnly.testTooFewArgumentsFailsO   s     ^^D--*.,-  /F 	MM-v6 ^^D--*.,-  /F 	MM-v6 ^^/0*.,-  /F 	MM-v6r&    N)__name__
__module____qualname____firstlineno____doc__r4   r   r$   r.   r5   r:   r=   rE   __static_attributes__rG   r&   r#   r
   r
      s7    7$e,,$e,,9++*
+7r&   r
   )rL   
__future__r   r   gslib.cs_api_mapr   gslib.tests.testcaseteststestcasegslib.tests.utilr   r   r   gslib.utils.retry_utilr   GsUtilIntegrationTestCaser
   rG   r&   r#   <module>rV      s6    6 & 	 ( ' ' 0 % (F78== F7r&   