
                             d 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  G d d	ej                        Zy)
/Integration tests for bucketpolicyonly command.    )absolute_importN)ApiSelector)ObjectToURI)unittest)Retryc                   D    e Zd ZdZddgZddgZd Zd Zd Zd Z	d	 Z
d
 Zy)TestBucketPolicyOnlyr   bucketpolicyonlysetgetc                 $   | j                  | j                  t        |      gz   d      }t        j                  dt        j
                        }t        j                  ||      }|j                  d      }| j                  t        |      |       y )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_AssertEnabledz#TestBucketPolicyOnly._AssertEnabled!   s~    ^^D--j1A0BB*.  0FJJ'M')||5!yy)>G5;;MJSZ!78    c                     | j                   t        j                  k(  rt        j                  d      S | j                         }| j                  |d       y )N,XML API has no concept of Bucket Policy OnlyF)test_apir   XMLr   skipCreateBucketr#   r   r   s     r"   test_off_on_default_bucketsz0TestBucketPolicyOnly.test_off_on_default_buckets*   s@    }}']]IJJ""$J
E*r$   c                 (   | j                   t        j                  k(  rt        j                  d      S | j                  dd      }| j                  |d       | j                  | j                  dt        |      gz          | j                  |d       y )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_bucketsz8TestBucketPolicyOnly.test_turning_off_on_enabled_buckets0   s}    }}']]IJJ""d37 # 9J
D)NN4$$tJ/?'@@A
E*r$   c                     | j                   t        j                  k(  rt        j                  d      S | j                         }| j                  | j                  dt        |      gz          | j                  |d       y )Nr&   onT
r'   r   r(   r   r)   r*   r   r1   r   r#   r+   s     r"   test_turning_onz$TestBucketPolicyOnly.test_turning_on:   sa    }}']]IJJ""$JNN4$$d:.>'??@
D)r$   c                 t   | j                   t        j                  k(  rt        j                  d      S | j                         }| j                  | j                  dt        |      gz          | j                  |d       | j                  | j                  dt        |      gz          | j                  |d       y )Nr&   r4   Tr0   Fr5   r+   s     r"   test_turning_on_and_offz,TestBucketPolicyOnly.test_turning_on_and_offC   s    }}']]IJJ""$JNN4$$d:.>'??@
D)NN4$$tJ/?'@@A
E*r$   c                    | j                  | j                  dd      }| j                  d|       | j                  | j                  dd      }| j                  d|       | j                  dgdd      }| j                  d|       y)z>Ensures bucketpolicyonly commands fail with too few arguments.T   )return_stderrexpected_statuszcommand requires at leastr   N)r   r1   assertInr   )r   stderrs     r"   testTooFewArgumentsFailsz-TestBucketPolicyOnly.testTooFewArgumentsFailsO   s     ^^D--*.,-  /F 	MM-v6 ^^D--*.,-  /F 	MM-v6 ^^/0*.,-  /F 	MM-v6r$   N)__name__
__module____qualname____doc__r1   r   r#   r,   r2   r6   r8   r?    r$   r"   r
   r
      s7    7$e,,$e,,9++*
+7r$   r
   )rC   
__future__r   r   gslib.cs_api_mapr   gslib.tests.testcaseteststestcasegslib.tests.utilr   r   r   gslib.utils.retry_utilr   GsUtilIntegrationTestCaser
   rD   r$   r"   <module>rM      s6    6 & 	 ( ' ' 0 % (F78== F7r$   