
                             d Z ddlmZ ddlmZ ddlmc mZ ddlZddlm	Z	m
Z
  e	 e
ddd             ddlmZ  G d	 d
ej                        Zy)z4Unit tests for hashing helper functions and classes.    )system_util)GetUserAgentN)add_moveMovedModulemockzunittest.mock)r   c                   P   e Zd ZdZ ej
                  dd      d        Zd Zej
                  j                  e	d      d        Z
d Zej
                  j                  e	d	      d
        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zd Zd Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d	      d        Zej
                  j                  e	d      ej
                  j                  e	d	      d               Zy)TestUserAgentHelperz0Unit tests for the GetUserAgent helper function.zgslib.VERSION4_testc                 :    | j                  t        g       d       y )Nz^ gsutil/4_test \([^\)]+\)assertRegexr   selfs    5platform/gsutil/gslib/tests/test_user_agent_helper.py
testNoArgszTestUserAgentHelper.testNoArgs   s    \"%'DE    c                 t    | j                  t        g d      d       | j                  t        g d      d       y )NFzanalytics/enabledTzanalytics/disabledr   r   s    r   testAnalyticsFlagz%TestUserAgentHelper.testAnalyticsFlag#   s2    \"e,.BC\"d+-BCr   IsRunningInteractivelyc                     d|_         | j                  t        g       d       d|_         | j                  t        g       d       y )NTzinteractive/TrueFzinteractive/Falsereturn_valuer   r   )r   mock_interactives     r   testInteractiveFlagz'TestUserAgentHelper.testInteractiveFlag'   s@    $(!\"%':;$)!\"%';<r   c                 <    | j                  t        dg      d       y )Nhelpzcommand/helpr   r   s    r   testHelpzTestUserAgentHelper.testHelp.   s    \6(+_=r   InvokedViaCloudSdkc                 L    d|_         | j                  t        g d      d       y )NF)cp-r-Z1.txtgs://dstcommand/cp$r   r   mock_invokeds     r   testCpzTestUserAgentHelper.testCp1   s#     %L\"IJ#%r   c                 L    d|_         | j                  t        g d      d       y )NF)r    -mr#   r$   zcommand/cp-m$r   r&   s     r   testCpWithMultiprocessingz-TestUserAgentHelper.testCpWithMultiprocessing7   s#     %L\"CD%'r   c                     d|_         | j                  t        dg      d       | j                  t        ddg      d       | j                  t        g d      d       y )NFr    r%   r#   )r    r!   z1.tsr   r&   s     r   testCpNotEnoughArgsz'TestUserAgentHelper.testCpNotEnoughArgs=   sP     %L\4&)>:\4/2NC\"67Hr   c                 L    d|_         | j                  t        g d      d       y )NF)r    u   öneu   twör%   r   r&   s     r   testCpEncodingz"TestUserAgentHelper.testCpEncodingD   s      %L\"89>Jr   c                 L    d|_         | j                  t        g d      d       y )NF)rsyncr#   r$   zcommand/rsync$r   r&   s     r   	testRsynczTestUserAgentHelper.testRsyncI   s#     %L\"@A&(r   c                 L    d|_         | j                  t        g d      d       y )NF)mvgs://src/1.txtzgs://dst/1.txtzcommand/mv$r   r&   s     r   testMvzTestUserAgentHelper.testMvO   s#     %L\"LM#%r   c                 L    d|_         | j                  t        g d      d       y )NF)r    r!   gs://srcr$   r%   r   r&   s     r   testCpCloudToCloudz&TestUserAgentHelper.testCpCloudToCloudU   #     %L\"FG#%r   c                 L    d|_         | j                  t        g d      d       y )NF)r    z-Dr8   r$   r%   r   r&   s     r   testCpForcedDaisyChainz*TestUserAgentHelper.testCpForcedDaisyChain[   r:   r   c                     | j                  t        g d      d       | j                  t        g d      d       | j                  t        g d      d       y )N)r    r!   r"   r8   s3://dstzcommand/cp-DaisyChain)r4   r5   zs3://dst/1.txtzcommand/mv-DaisyChain)r1   r!   r8   r>   zcommand/rsync-DaisyChainr   r   s    r   testCpDaisyChainz$TestUserAgentHelper.testCpDaisyChaina   sM    \"LM-/\"LM-/\"IJ02r   c                 >    | j                  t        g d      d       y )N)r    r!   r"   r*   r8   r>   zcommand/cp-DaisyChain-mr   r   s    r   #testCpDaisyChainWithMultiprocessingz7TestUserAgentHelper.testCpDaisyChainWithMultiprocessingi   s    EF"$r   c                 L    d|_         | j                  t        g d      d       y )NF)r    r!   r"   z	bad://srcr>   r%   r   r&   s     r   testPassOnInvalidUrlErrorz-TestUserAgentHelper.testPassOnInvalidUrlErrorn   s#     %L\"MN#%r   c                 L    d|_         | j                  t        g d      d       y )NF)rewrite-kr$   zcommand/rewrite-k$r   r&   s     r   testRewriteEncryptionKeyz,TestUserAgentHelper.testRewriteEncryptionKeyt   #     %L\"?@*,r   c                 L    d|_         | j                  t        g d      d       y )NF)rE   -sr$   zcommand/rewrite-s$r   r&   s     r   testRewriteStorageClassz+TestUserAgentHelper.testRewriteStorageClassz   rH   r   c                 L    d|_         | j                  t        g d      d       y )NF)rE   rF   rJ   r$   zcommand/rewrite-k-s$r   r&   s     r   'testRewriteEncryptionKeyAndStorageClassz;TestUserAgentHelper.testRewriteEncryptionKeyAndStorageClass   s#     %L\"EF,.r   CloudSdkVersionc                     d|_         d|_         | j                  t        dg      d       d|_         d|_         | j                  t        dg      d       y )NTz500.1r   zgoogle-cloud-sdk/500.1$Fzcommand/help$r   )r   r'   mock_versions      r   testCloudSdkz TestUserAgentHelper.testCloudSdk   sT     !%L 'L\6(+-GH %L 'L\6(+-=>r   N)__name__
__module____qualname____doc__r   patchr   r   objectr   r   r   r(   r+   r-   r/   r2   r6   r9   r<   r?   rA   rC   rG   rK   rM   rQ    r   r   r	   r	      sm   84::ox(F )FD ::[":;= <=> ::["67% 8%
 ::["67' 8'
 ::["67I 8I ::["67K 8K ::["67( 8(
 ::["67% 8%
 ::["67% 8%
 ::["67% 8%
2$
 ::["67% 8%
 ::["67, 8,
 ::["67, 8,
 ::["67. 8.
 ::["34::["67? 8 5?r   r	   )rU   gslib.utilsr   gslib.utils.user_agent_helperr   gslib.tests.testcaseteststestcasesixr   r   	six.movesr   GsUtilUnitTestCaser	   rX   r   r   <module>ra      sD    ; # 6 ' ' 
 % VV_	5 6 r?(55 r?r   