
    g                         S r SSKJr  SSK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	KJr   " S
 S\R"                  5      r " S S\R&                  5      rg)zTests for autoclass command.    )absolute_importN)	exception)	SkipForGS)SkipForJSON)
SkipForXML)ObjectToURI)SetBotoConfigForTestc                   2    \ rS rSrS rS rS rS rS rSr	g)	TestAutoclassUnit   c                     U R                  [        R                  S5         U R                  SS/5        S S S 5        g ! , (       d  f       g = f)Ncommand requires at least	autoclasssetassertRaisesRegexr   CommandException
RunCommandselfs    -platform/gsutil/gslib/tests/test_autoclass.py test_set_too_few_arguments_fails2TestAutoclassUnit.test_set_too_few_arguments_fails    ;    				 : : ;
=
ookE7+
= 
= 
=	   >
Ac                     U R                  [        R                  S5         U R                  SS/5        S S S 5        g ! , (       d  f       g = f)Nr   r   getr   r   s    r    test_get_too_few_arguments_fails2TestAutoclassUnit.test_get_too_few_arguments_fails%   r   r   c                     U R                  [        R                  S5         U R                  S/ 5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   s    r   test_no_subcommand_fails*TestAutoclassUnit.test_no_subcommand_fails*   s9    				 : : ;
=
ook2&
= 
= 
=s	   =
Ac                     U R                  [        R                  S5         U R                  SSS/5        S S S 5        g ! , (       d  f       g = f)NzInvalid subcommandr   fakecommandtestr   r   s    r   test_invalid_subcommand_fails/TestAutoclassUnit.test_invalid_subcommand_fails/   s>    				 : : 4
6
ookM6#:;
6 
6 
6s	   ?
Ac                     U R                  SS9nU R                  SS9nU R                  SSS/SS9nU R                  UR                  U5        U R                  UR                  U5        g )	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_wildcard:TestAutoclassUnit.test_gets_multiple_buckets_with_wildcard4   so    ##	#:K##	#:K__[5.*A+/  1FMM+))62MM+))62     N)
__name__
__module____qualname____firstlineno__r   r   r!   r&   r3   __static_attributes__r6   r5   r   r   r      s    ,
,
'
<
3r5   r   c                       \ 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rg)TestAutoclassE2E=   z E2E tests for autoclass command.r   r   r   z$Autoclass only runs on GCS JSON API.c                     U R                  5       nU R                  U R                  [        U5      /-   SS9nU R	                  US5        U R	                  US5        g )NTr,   Enabled: FalsezToggle Time: None)r.   	RunGsUtil_get_autoclass_cmdsuriassertRegex)r   
bucket_urir2   s      r   test_off_on_default_buckets,TestAutoclassE2E.test_off_on_default_bucketsC   s]    ""$J^^D33tJ7G6HH*.  0FV./V12r5   c           
      p   U R                  5       nU R                  U R                  S[        U5      /-   SSS9u  p#U R                  (       a?  U R                  U[        R                  " SR                  [        U5      5      5      5        OMU R                  U[        R                  " SR                  [        U5      R                  S5      5      5      5        U R                  U R                  [        U5      /-   SS9nU R                  US5        U R                  US	5        U R                  U R                  S
[        U5      /-   SSS9u  p#U R                  (       a?  U R                  U[        R                  " SR                  [        U5      5      5      5        OMU R                  U[        R                  " SR                  [        U5      R                  S5      5      5      5        U R                  U R                  [        U5      /-   SS9nU R                  US5        U R                  US	5        g )NonT)r-   return_stderrzUpdating {}zSetting Autoclass on for {}
/r,   zEnabled: TruezToggle Time: \d+offzSetting Autoclass off for {}
r@   )r.   rA   _set_autoclass_cmdrC   _use_gcloud_storagerD   reescapeformatstrrstriprB   )r   rE   r2   stderrs       r   test_turning_on_and_off(TestAutoclassE2E.test_turning_on_and_offK   s   ""$J^^D$;$;%)4
+;$<%=2626 $ 8NF 
vryy)=)=c*o)NOP


))3::*o$$S)+ ,-
 ^^D33tJ7G6HH*.  0FV-.V01^^D$;$;%*D,<$=%>2626 $ 8NF 
vryy)=)=c*o)NOP


))4;;*o$$S)+ ,-
 ^^D33tJ7G6HH*.  0FV./V01r5   c                    U R                  5       nU R                  5       nU R                  U R                  [        U5      [        U5      /-   SS9nSR	                  [        U5      [        U5      5      nU R                  X45        g )NTr,   zV{}:\n  Enabled: False\n  Toggle Time: None\n{}:\n  Enabled: False\n  Toggle Time: None)r.   rA   rB   rC   rQ   rD   )r   r0   r1   r2   output_regexs        r   test_multiple_buckets&TestAutoclassE2E.test_multiple_bucketsq   s    ##%K##%K^^	k	D-.	/  F+
 ,26${2C26{2C,E  	V*r5   zTesting XML only behavior.c                     / 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)r\   gs_service_client_idN)r\   gs_service_key_fileN)r\   gs_service_key_file_passwordN)r\   gs_access_key_iddummykey)r\   gs_secret_access_keydummysecretzgs://any-bucket-namerI   T   rJ   expected_statusz3command can only be with the Cloud Storage JSON API)r	   rA   rM   r/   rB   )r   boto_config_hmac_auth_onlyrE   rT   s       r   test_xml_fails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&A??
BzTesting S3 only behaviorc                    U R                  5       nU R                  U R                  S[        U5      /-   SSS9nU R	                  SU5        U R                  U R
                  [        U5      /-   SSS9nU R	                  SU5        g )NrI   Tre   rf   z(command can only be used for GCS Buckets)r.   rA   rM   rC   r/   rB   )r   rE   rT   s      r   test_s3_failsTestAutoclassE2E.test_s3_fails   s    ""$J^^D33!4
#345*.,-  /F 	MM<fE^^D33tJ7G6HH*.,-  /F 	MM<fEr5   r6   N)r7   r8   r9   r:   __doc__rM   rB   r   rF   rU   rY   r   ri   r   rl   r;   r6   r5   r   r=   r=   =   s    (#U+#U+453 63 45#2 6#2J 45+ 6+  +, -4 '(F )Fr5   r=   )rn   
__future__r   rO   gslib.tests.testcaseteststestcasegslibr   )gslib.tests.testcase.integration_testcaser   r   r   gslib.tests.utilr   rC   r	   GsUtilUnitTestCaser   GsUtilIntegrationTestCaser=   r6   r5   r   <module>rx      sP    # & 	 ' '  ? A @ 0 1333 3>lFx99 lFr5   