
                         >    d dl Z d dlZ G d de j                        Zy)    Nc                   8   e Zd Zej                  j
                  fdZej                  j                  fdZej                  j                  fdZ	ej                  j                  fdZej                  j
                  fdZej                  j
                  fdZy)CacheKeysTestc                 F   | j                   |        |              | j                  t         |             t         |                    | j                   |ddd       |ddd             | j                  t         |ddd            t         |ddd                   | j                   |dddd       |dddd             | j                  t         |dddd            t         |dddd                   | j                   |ddd       |ddd             | j                   |ddd       |dddd              | j                   |dddd       |dddd              | j                   |dddd       |dddd             | j                  t              5  t         |i              d d d        | j                   |ddd       |ddd	             | j                  t         |ddd            t         |ddd	                   y # 1 sw Y   `xY w
N         r   xy      ?       @      @assertEqualhashassertNotEqualassertRaises	TypeErrorselfkeys     9platform/gsutil/third_party/cachetools/tests/test_keys.pytest_hashkeyzCacheKeysTest.test_hashkey   s   &ced35k2Q1s1a|4c!Ql+T#aA,-?@Q1*C1a1,=>c!QQ/0$s1aa7H2IJC1aL#aA,7C1aL#aA*>?C1a1-s1ad/CDC1a1-s1aa/@Ay)RM * 	Q1s3S'9:c!Ql+T#c32D-EF	 *)s   &HH c                 x   | j                   |d       |d             | j                  t         |d            t         |d                   | j                   |dddd       |dddd             | j                  t         |dddd            t         |dddd                   | j                   |ddddd       |ddddd             | j                  t         |ddddd            t         |ddddd                   | j                   |dddd       |dddd             | j                   |dddd       |ddddd              | j                   |ddddd       |ddddd              | j                   |ddddd       |ddddd             | j                  t              5  t        d |i              d d d        | j                   |dddd       |dd	d
d             | j                  t         |dddd            t         |dd	d
d                   y # 1 sw Y   dxY wNr   r   r   r   r	   r   r
   r   r   r   r   r   r   s     r   	methodkeyzCacheKeysTest.methodkey   s   S3s8,c#hc#h8S!Q*CQ1,=>c#q!Q/0$s31a7H2IJS!QQ/S!QQ1GHc#q!Q!45tCQ1PQ<R7STCQ1-s31a/@ACQ1-s31a4/HICQ12CQ14MNCQ12CQ14JKy)c"g * 	S!Q*CS#s,CDc#q!Q/0$s3S#7N2OP	 *)s   :H00H9c                    | j                   |        |              | j                  t         |             t         |                    | j                   |ddd       |ddd             | j                  t         |ddd            t         |ddd                   | j                   |dddd       |dddd             | j                  t         |dddd            t         |dddd                   | j                   |ddd       |ddd             | j                   |ddd       |dddd              | j                   |dddd       |dddd              | j                   |dddd       |dddd             | j                  t              5  t         |i              d d d        | j                   |ddd       |ddd	             y # 1 sw Y   ,xY wr   r   r   s     r   test_typedkeyzCacheKeysTest.test_typedkey*   s   &ced35k2Q1s1a|4c!Ql+T#aA,-?@Q1*C1a1,=>c!QQ/0$s1aa7H2IJC1aL#aA,7C1aL#aA*>?C1a1-s1ad/CDC1a1-s1aa/@Ay)RM * 	C1aL#c3*<= *)s   &G##G,c                    | j                   |d       |d             | j                  t         |d            t         |d                   | j                   |dddd       |dddd             | j                  t         |dddd            t         |dddd                   | j                   |ddddd       |ddddd             | j                  t         |ddddd            t         |ddddd                   | j                   |dddd       |dddd             | j                   |dddd       |ddddd              | j                   |ddddd       |ddddd              | j                   |ddddd       |ddddd             | j                  t              5  t         |di              d d d        | j                   |dddd       |dd	d
d             y # 1 sw Y   .xY wr   r   r   s     r   test_typedmethodkeyz!CacheKeysTest.test_typedmethodkey:   s   S3s8,c#hc#h8S!Q*CQ1,=>c#q!Q/0$s31a7H2IJS!QQ/S!QQ1GHc#q!Q!45tCQ1PQ<R7STCQ1-s31a/@ACQ1-s31a4/HICQ12CQ14MNCQ12CQ14JKy)S" * 	CQ1-s3S#/FG *)s   :G::Hc                 L   | j                   |       t               | j                   |ddd       |ddd      z   t         |                    | j                   |ddd      dz   t         |                    | j                  d |ddd      z   t         |                    y )	Nr   r   r	            )r$   r%   r&   )r   r   r	   )assertIsInstancetupletyper   s     r   test_addkeyszCacheKeysTest.test_addkeysK   s    ceU+c!QlSAq\94;Gc!QlY6SUDi#aA,6SUD    c                    dd l } |        |d       |dd       |dd      fD ]  }| j                  t        |j                        d       t	        |      }| j                  t        |j                        d       |j                  |j                  |            }| j                  t        |j                        d       | j                  ||       | j                  |t	        |              y )Nr   abc{   )qr   )pickler   len__dict__r   loadsdumps)r   r   r0   khpickleds         r   test_picklezCacheKeysTest.test_pickleQ   s    %US_c%56IJAS_a0QAS_a0ll6<<?3GS!1!12A6Q(QW. Kr+   N)__name__
__module____qualname__
cachetoolskeyshashkeyr   r   typedkeyr    typedmethodkeyr"   r*   r8    r+   r   r   r      s|    )66 G" 'OO55 Q$ !+ 8 8 >  '1oo&D&D H"  *66 E )oo55 /r+   r   )unittestcachetools.keysr<   TestCaser   rA   r+   r   <module>rE      s     V/H%% V/r+   