
                             d 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	 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 command.py.    )absolute_import)print_function)division)unicode_literals)mock)command)testcase)	constantsc                       e Zd ZdZej
                  j                  ddej                  dd      Z	ej
                  j                  dg ddd	i 
      Zy)FakeGsutilCommandz(Implementation of a fake gsutil command.fake_gsutil   zrz:T)min_argsmax_argssupported_sub_argsfile_url_okcommand_helpz&Fake one line summary for the command.zHelp text for fake command.)	help_namehelp_name_aliases	help_typehelp_one_line_summary	help_textsubcommand_help_textN)__name__
__module____qualname____doc__r   CommandCreateCommandSpecr
   NO_MAXcommand_specHelpSpec	help_spec     +platform/gsutil/gslib/tests/test_command.pyr   r      s`    022=<=<E<L<LFK?C	 3 E,
 oo&&D- ' )r%   r   c                   v     e Zd ZdZ fdZd Zd Zej                  j                  e
dd      d        Z xZS )	TestParseSubOptszlTest Command.ParseSubOpts method.
  
  Only testing cases which are not tested indirectly by other tests.
  c                    t         |           t        t        j                  g di t        j                  t        j                  t        j                  t        j                  t        j
                               | _        y )Nz-zopt1z-rarg1arg2command_runnerargsheadersdebugtrace_tokenparallel_operationsbucket_storage_uri_classgsutil_api_class_map_factory)supersetUpr   r   ANY	MagicMock_fake_command)self	__class__s    r&   r8   zTestParseSubOpts.setUp4   sL    	GMO*xx1hhHH HH!%%)^^%57Dr%   c                     | j                  t        d      5  | j                  j                  dd       d d d        y # 1 sw Y   y xY w)NzIRequested to check arguments but sub_opts and args have not been updated.TF)
check_argsshould_update_sub_opts_and_args)assertRaisesRegex	TypeErrorr;   ParseSubOpts)r<   s    r&   Htest_raises_error_with_check_args_set_and_update_sub_opts_and_args_unsetzYTestParseSubOpts.test_raises_error_with_check_args_set_and_update_sub_opts_and_args_unset@   sI    			 
 %%FK & M
 
 
s	   >Ac                     ddg}|| j                   _        | j                   j                  d      \  }}| j                  ||       y )Nfaker0   F)r@   )r;   r0   rC   assertEqual)r<   	args_list_parsed_argss       r&   *test_uses_self_args_if_args_passed_is_Nonez;TestParseSubOpts.test_uses_self_args_if_args_passed_is_NoneH   sL     I'D''44(- 5 /NA{[),r%   CreateOrGetGsutilLoggerT)autospecc                    d|j                   j                  _         t        t        j                  g di t        j                  t        j                  t        j                  t        j                  t        j
                               | _        | j                  | j                  j                         |j                  d       y )NFr*   r.   r   )
return_valueisEnabledForr   r   r9   r:   r;   
assertTrue
quiet_modeassert_called_once_with)r<   mock_loggers     r&   test_quiet_mode_gets_setz)TestParseSubOpts.test_quiet_mode_gets_setO   s~    9>K))6*xx1hhHH HH!%%)^^%57D 	OOD&&112''6r%   )r   r   r   r   r8   rD   rK   r   patchobjectr   rU   __classcell__)r=   s   @r&   r(   r(   .   sD    

7M- ::W7$G7 H7r%   r(   N)r   
__future__r   r   r   r   unittestr   gslibr   gslib.testsr	   gslib.utilsr
   r   r   GsUtilUnitTestCaser(   r$   r%   r&   <module>r_      sD     & %  '     ! ".7x22 .7r%   