
    g                         d Z ddlmZ ddlZddlmc mZ ddlmZ ddl	m
Z
 ddl	mZ ddl	mZ ddlmZ dd	lmZ  G d
 dej"                        Z G d dej&                        Zy)zTests for autoclass command.    )absolute_importN)	exception)	SkipForGS)SkipForJSON)
SkipForXML)ObjectToURI)SetBotoConfigForTestc                   *    e Zd Zd Zd Zd Zd Zd Zy)TestAutoclassUnitc                     | j                  t        j                  d      5  | j                  ddg       d d d        y # 1 sw Y   y xY w)Ncommand requires at least	autoclasssetassertRaisesRegexr   CommandException
RunCommandselfs    -platform/gsutil/gslib/tests/test_autoclass.py test_set_too_few_arguments_failsz2TestAutoclassUnit.test_set_too_few_arguments_fails    ;    				 : : ;
=
ookE7+
= 
= 
=	   >Ac                     | j                  t        j                  d      5  | j                  ddg       d d d        y # 1 sw Y   y xY w)Nr   r   getr   r   s    r    test_get_too_few_arguments_failsz2TestAutoclassUnit.test_get_too_few_arguments_fails%   r   r   c                     | j                  t        j                  d      5  | j                  dg        d d d        y # 1 sw Y   y xY w)Nr   r   r   r   s    r   test_no_subcommand_failsz*TestAutoclassUnit.test_no_subcommand_fails*   s9    				 : : ;
=
ook2&
= 
= 
=s	   =Ac                     | j                  t        j                  d      5  | j                  dddg       d d d        y # 1 sw Y   y xY w)NzInvalid subcommandr   fakecommandtestr   r   s    r   test_invalid_subcommand_failsz/TestAutoclassUnit.test_invalid_subcommand_fails/   s>    				 : : 4
6
ookM6#:;
6 
6 
6s	   ?Ac                     | j                  d      }| j                  d      }| j                  dddgd      }| j                  |j                  |       | j                  |j                  |       y )	Nbucket1)bucket_namebucket2r   r   zgs://bucket*Treturn_stdout)CreateBucketr   assertInr%   )r   bucket_uri1bucket_uri2stdouts       r   (test_gets_multiple_buckets_with_wildcardz:TestAutoclassUnit.test_gets_multiple_buckets_with_wildcard4   so    ##	#:K##	#:K__[5.*A+/  1FMM+))62MM+))62    N)__name__
__module____qualname__r   r   r   r"   r.    r/   r   r   r      s    ,
,
'
<
3r/   r   c                       e Zd ZdZddgZddgZ ed      d        Z ed      d        Z ed      d        Z	 e
d	      d
        Z ed      d        Zy)TestAutoclassE2Ez E2E tests for autoclass command.r   r   r   z$Autoclass only runs on GCS JSON API.c                     | j                         }| j                  | j                  t        |      gz   d      }| j	                  |d       | j	                  |d       y )NTr'   Enabled: FalsezToggle Time: None)r)   	RunGsUtil_get_autoclass_cmdsuriassertRegex)r   
bucket_urir-   s      r   test_off_on_default_bucketsz,TestAutoclassE2E.test_off_on_default_bucketsC   s]    ""$J^^D33tJ7G6HH*.  0FV./V12r/   c           
      p   | j                         }| j                  | j                  dt        |      gz   dd      \  }}| j                  r>| j                  |t        j                  dj                  t        |                         nL| j                  |t        j                  dj                  t        |      j                  d                         | j                  | j                  t        |      gz   d      }| j                  |d       | j                  |d	       | j                  | j                  d
t        |      gz   dd      \  }}| j                  r>| j                  |t        j                  dj                  t        |                         nL| j                  |t        j                  dj                  t        |      j                  d                         | j                  | j                  t        |      gz   d      }| j                  |d       | j                  |d	       y )NonT)r(   return_stderrzUpdating {}zSetting Autoclass on for {}
/r'   zEnabled: TruezToggle Time: \d+offzSetting Autoclass off for {}
r7   )r)   r8   _set_autoclass_cmdr:   _use_gcloud_storager;   reescapeformatstrrstripr9   )r   r<   r-   stderrs       r   test_turning_on_and_offz(TestAutoclassE2E.test_turning_on_and_offK   s   ""$J^^D$;$;%)4
+;$<%=2626 $ 8NFF 
vryy)=)=c*o)NOP


))3::*o$$S)+ ,-
 ^^D33tJ7G6HH*.  0FV-.V01^^D$;$;%*D,<$=%>2626 $ 8NFF 
vryy)=)=c*o)NOP


))4;;*o$$S)+ ,-
 ^^D33tJ7G6HH*.  0FV./V01r/   c                    | j                         }| j                         }| j                  | j                  t        |      t        |      gz   d      }dj	                  t        |      t        |            }| j                  ||       y )NTr'   zV{}:\n  Enabled: False\n  Toggle Time: None\n{}:\n  Enabled: False\n  Toggle Time: None)r)   r8   r9   r:   rG   r;   )r   r+   r,   r-   output_regexs        r   test_multiple_bucketsz&TestAutoclassE2E.test_multiple_bucketsq   s    ##%K##%K^^	k	D-.	/  F+
 ,26${2C26{2C,E  	V\*r/   zTesting XML only behavior.c                 "   g d}t        |      5  d}| j                  | j                  d|gz   dd      }| j                  d|       | j                  | j                  |gz   dd      }| j                  d|       d d d        y # 1 sw Y   y xY w)N))Credentialsgs_oauth2_refresh_tokenN)rP   gs_service_client_idN)rP   gs_service_key_fileN)rP   gs_service_key_file_passwordN)rP   gs_access_key_iddummykey)rP   gs_secret_access_keydummysecretzgs://any-bucket-namer?   T   r@   expected_statusz3command can only be with the Cloud Storage JSON API)r	   r8   rC   r*   r9   )r   boto_config_hmac_auth_onlyr<   rJ   s       r   test_xml_failszTestAutoclassE2E.test_xml_fails   s    	" 
8	9)j~~d55z8JJ,0./  1f mmI ~~d55D,0./  1f mmI 
:	9	9s   A,BBzTesting S3 only behaviorc                    | j                         }| j                  | j                  dt        |      gz   dd      }| j	                  d|       | j                  | j
                  t        |      gz   dd      }| j	                  d|       y )Nr?   TrY   rZ   z(command can only be used for GCS Buckets)r)   r8   rC   r:   r*   r9   )r   r<   rJ   s      r   test_s3_failszTestAutoclassE2E.test_s3_fails   s    ""$J^^D33!4
#345*.,-  /F 	MM<fE^^D33tJ7G6HH*.,-  /F 	MM<fEr/   N)r0   r1   r2   __doc__rC   r9   r   r=   rK   rN   r   r]   r   r_   r3   r/   r   r5   r5   =   s    (#U+#U+453 63 45#2 6#2J 45+ 6+  +, -4 '(F )Fr/   r5   )r`   
__future__r   rE   gslib.tests.testcaseteststestcasegslibr   )gslib.tests.testcase.integration_testcaser   r   r   gslib.tests.utilr   r:   r	   GsUtilUnitTestCaser   GsUtilIntegrationTestCaser5   r3   r/   r   <module>rj      sP    # & 	 ' '  ? A @ 0 1333 3>lFx99 lFr/   