
                             S SK r S SKrS SKJr  SSKJr   " S S5      r " S S\5      r " S	 S
\R                  \5      r	g)    N)	TLRUCache   )CacheTestMixinc                   *    \ rS rSrSS jrS rS rSrg)Timer	   c                     Xl         SU l        g )Nr   autotime)selfr   s     9platform/gsutil/third_party/cachetools/tests/test_tlru.py__init__Timer.__init__
   s    		    c                 f    U R                   (       a  U =R                  S-  sl        U R                  $ Nr   r
   r   s    r   __call__Timer.__call__   s     99IINIyyr   c                 .    U =R                   S-  sl         g r   )r   r   s    r   tick
Timer.tick   s    		Q	r   r
   N)F)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__ r   r   r   r   	   s    
r   r   c                   &    \ rS rSrS r\4S jrSrg)TLRUTestCache   c                 "    [         R                  $ N)mathinf)_key_value_times      r   default_ttuTLRUTestCache.default_ttu   s    xxr   c                 H    [         R                  " XU4S[        5       0UD6  g )Ntimer)r   r   r   )r   maxsizettukwargss       r   r   TLRUTestCache.__init__   s    4#GUWGGr   r   N)r   r   r   r   r*   r   r   r   r   r   r!   r!      s     %0 Hr   r!   c                   B    \ rS rSr\rS rS rS rS r	S r
S rS rS	rg
)TLRUCacheTest   c                 x   [        SS [        5       S9nU R                  SUR                  5       5        U R                  SUR	                  S SS5      5        SUS'   U R                  SUS   5        U R                  S[        U5      5        U R                  S1[        U5      5        UR                  R                  5         U R                  SUS   5        U R                  S[        U5      5        U R                  S1[        U5      5        SUS'   U R                  SUS   5        U R                  SUS   5        U R                  S[        U5      5        U R                  SS1[        U5      5        UR                  R                  5         U R                  SU5        U R                  SUS   5        U R                  S[        U5      5        U R                  S1[        U5      5        SUS'   U R                  SU5        U R                  SUS   5        U R                  SUS   5        U R                  S[        U5      5        U R                  SS1[        U5      5        UR                  R                  5         U R                  SU5        U R                  SUS   5        U R                  SUS   5        U R                  S[        U5      5        U R                  SS1[        U5      5        SUS'   U R                  SUS   5        U R                  SUS   5        U R                  SUS   5        U R                  S[        U5      5        U R                  1 Sk[        U5      5        UR                  R                  5         U R                  SUS   5        U R                  SU5        U R                  SUS   5        U R                  S[        U5      5        U R                  SS1[        U5      5        UR                  R                  5         U R                  SU5        U R                  SU5        U R                  SUS   5        U R                  S[        U5      5        U R                  S1[        U5      5        UR                  R                  5         U R                  SU5        U R                  SU5        U R                  SU5        U R                  [        5         US	 S S S 5        U R                  [        5         UR                  S5        S S S 5        U R                  [        5         US	 S S S 5        U R                  S[        U5      5        U R                  [        5       [        U5      5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f)	N   c                     X!-   S-   $ r   r   )_vts      r   <lambda>(TLRUCacheTest.test_ttu.<locals>.<lambda>#   s
    r   r.   r/   r-   r      r         r   r?   r>   )r   r   assertEqualr-   r/   lensetr   assertNotInassertRaisesKeyErrorpopr   caches     r   test_ttuTLRUCacheTest.test_ttu"   s   !)B%'REKKM*EIIdAq12aE!H%CJ'!c%j)E!H%CJ'!c%j)aE!H%E!H%CJ'!QU,E"E!H%CJ'!c%j)aE"E!H%E!H%CJ'!QU,E"E!H%E!H%CJ'!QU,aE!H%E!H%E!H%CJ'CJ/E!H%E"E!H%CJ'!QU,E"E"E!H%CJ'!c%j)E"E"E"x(a )x(IIaL )x(a ) 	CJ'E
+ )(((((s$   .V	V>V+	
V
V(+
V9c                 d   [        SS [        5       S9nU R                  SUR                  5       5        U R                  SUR	                  S S S5      5        SUS'   SUS'   SUS'   U R                  [        U5      S5        U R                  SU5        U R                  US   S5        U R                  US   S5        US     SUS'   U R                  [        U5      S5        U R                  SU5        U R                  US   S5        U R                  SU5        U R                  US   S5        SUS'   U R                  [        U5      S5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  US   S5        U R                  US   S5        g )	Nr?   c                     US-   $ r   r   kr9   r:   s      r   r;   ,TLRUCacheTest.test_ttu_lru.<locals>.<lambda>p       Qr   r=   r   r   r>         )r   r   rA   r-   r/   rB   rD   rH   s     r   test_ttu_lruTLRUCacheTest.test_ttu_lruo   s   !)>egNEKKM*EIIdD!45aaaUQ'E"q1%q1%aaUQ'E"q1%E"q1%aUQ'E"E"E"q1%q1%r   c                 ~   [        SS [        5       S9nUR                   nU R                  X!R                  5       5        S S S 5        SUS'   UR                  R	                  5         SUS'   UR                  R	                  5         SUS'   U R                  SUR                  5       5        U R                  1 Sk[        U5      5        U R                  S[        U5      5        U R                  SUS   5        U R                  SUS   5        U R                  SUS   5        UR                  5       nU R                  [        5       [        U5      5        U R                  1 Sk[        U5      5        U R                  S[        U5      5        U R                  SUS   5        U R                  SUS   5        U R                  SUS   5        UR                  S5      nU R                  S1[        U5      5        U R                  SS1[        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SUS   5        U R                  SUS   5        UR                  S5      nU R                  S	1[        U5      5        U R                  S1[        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SU5        U R                  SUS   5        UR                  S
5      nU R                  S1[        U5      5        U R                  [        5       [        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SU5        U R                  SU5        g ! , (       d  f       GNs= f)Nr>   c                     US-   $ )Nr>   r   rN   s      r   r;   /TLRUCacheTest.test_ttu_expire.<locals>.<lambda>   rQ   r   r=   r   r?   r@   )r   r   rR   )r?   r?   rS   )r>   r>   r   )	r   r   r-   rA   r   rC   rB   expirerD   )r   rI   r   itemss       r   test_ttu_expireTLRUCacheTest.test_ttu_expire   s   !)>egN[[DT;;=1  aaaEKKM*CJ/CJ'E!H%E!H%E!H%E
+CJ/CJ'E!H%E!H%E!H%Q&3u:.!QU,CJ'E"E!H%E!H%Q&3u:.!c%j)CJ'E"E"E!H%Q&3u:.E
+CJ'E"E"E"] [s    N--
N<c                    [        SS [        5       S9nS US'   U R                  US   S 5        U R                  S[        U5      5        S US'   U R	                  SU5        U R                  US   S 5        U R                  S[        U5      5        S US'   U R	                  SU5        U R	                  SU5        U R                  US   S 5        U R                  S[        U5      5        g )Nr   c                 
    X -   $ r$   r   )rO   r8   r:   s      r   r;   0TLRUCacheTest.test_ttu_expired.<locals>.<lambda>       r   r=   r   )r   r   rA   rB   rD   rH   s     r   test_ttu_expiredTLRUCacheTest.test_ttu_expired   s    !)>egNaq4(CJ'aE"q4(CJ'b	U#E"q4(CJ'r   c                    [        SS [        SS9S9nSUS'   U R                  SUS   5        SUS'   U R                  SUR                  S5      5        SUS'   U R                  SUR	                  S5      5        SUS'   U R                  SUR                  S5      5        SUS'   UR                  5         U R                  S[        U5      5        g )Nr   c                     US-   $ )Nr?   r   rN   s      r   r;   /TLRUCacheTest.test_ttu_atomic.<locals>.<lambda>   rQ   r   T)r   r=   r   )r   r   rA   getrG   
setdefaultclearrB   rH   s     r   test_ttu_atomicTLRUCacheTest.test_ttu_atomic   s    !)>eQUFVWaE!H%aEIIaL)aEIIaL)aE,,Q/0aCJ'r   c                     [        SS [        5       S9nSUS'   U R                  SUS   5        UR                  R	                  5         U R                  [        5         US     S S S 5        U R                  SU5        g ! , (       d  f       N!= f)Nr   c                     US-   $ r   r   rN   s      r   r;   2TLRUCacheTest.test_ttu_tuple_key.<locals>.<lambda>   rQ   r   r=   *   )r   r?   r>   )r   r   rA   r-   r   rE   rF   rD   rH   s     r   test_ttu_tuple_key TLRUCacheTest.test_ttu_tuple_key   sv    !)>egNiU9-.x() )E* )(s   A??
Bc                 ^   [        SS [        5       S9nU R                  SUR                  5       5        SUS'   SUS'   SUS'   SUS'   U R                  1 Sk[	        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SUS   5        U R                  SUS   5        U R                  SUS   5        UR                  R                  5         U R                  SS1[	        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SU5        U R                  SUS   5        U R                  SUS   5        UR                  R                  5         U R                  S1[	        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SUS   5        UR                  R                  5         U R                  [	        5       [	        U5      5        U R                  S[        U5      5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        g )	NrR   c                 
    X!-   $ r$   r   rN   s      r   r;   7TLRUCacheTest.test_ttu_reverse_insert.<locals>.<lambda>   r`   r   r=   r   r>   r?   r   r@   )r   r   rA   r-   rC   rB   rD   r   rH   s     r   test_ttu_reverse_insert%TLRUCacheTest.test_ttu_reverse_insert   s=   !)>egNEKKM*aaaaCJ/CJ'E"E!H%E!H%E!H%!QU,CJ'E"E"E!H%E!H%!c%j)CJ'E"E"E"E!H%E
+CJ'E"E"E"E"r   r   N)r   r   r   r   r!   CacherJ   rT   r[   rb   rj   rp   ru   r   r   r   r   r3   r3      s-    EK,Z&<0#d((+)#r   r3   )
r%   unittest
cachetoolsr    r   r   r!   TestCaser3   r   r   r   <module>r|      s?         HI Hp#H%%~ p#r   