
    e                         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)TTLCache   )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     8platform/gsutil/third_party/cachetools/tests/test_ttl.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                   4    \ rS rSr\R
                  4S jrSrg)TTLTestCache   c                 H    [         R                  " X4U[        5       S.UD6  g )N)ttltimer)r   r   r   )r   maxsizer$   kwargss       r   r   TTLTestCache.__init__   s    $JSJ6Jr   r   N)r   r   r   r   mathinfr   r   r   r   r   r!   r!      s    $(HH Kr   r!   c                   <    \ rS rSr\rS rS rS rS r	S r
S rSrg	)
TTLCacheTest   c                 8   [        SS[        5       S9nU R                  SUR                  5       5        U R                  SUR                  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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   r&   r$   r%   r   r      )r   r   assertEqualr%   r$   lensetr   assertNotInassertRaisesKeyErrorpopr   caches     r   test_ttlTTLCacheTest.test_ttl   s<   9EKKM*EII&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"E!H%CJ'!c%j)E"E"E"x(a )x(IIaL )x(a ) 	CJ'E
+ )(((((s$   O)/O:P)
O7:
P
Pc                    [        SS[        5       S9n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/   r   r0   r1         )r   r   r2   r3   r5   r9   s     r   test_ttl_lruTTLCacheTest.test_ttl_lruW   sZ   9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        U R                  SUR                  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N= f)Nr1   r0   r   r/   >   r   r/   r1   r   r   r>   )r/   r/   r?   )r1   r1   r   )
r   r   r%   r2   r$   r   r4   r3   expirer5   )r   r:   r   itemss       r   test_ttl_expireTTLCacheTest.test_ttl_expires   s   9[[DT;;=1 EII&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    O
O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   r/   T)r   r0   r   )r   r   r2   getr8   
setdefaultclearr3   r9   s     r   test_ttl_atomicTTLCacheTest.test_ttl_atomic   s    D1ABaE!H%aEIIaL)aEIIaL)aE,,Q/0aCJ'r   c                 V   [        SS[        5       S9nU R                  SUR                  5        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   r0   *   )r   r/   r1   )	r   r   r2   r$   r%   r   r6   r7   r5   r9   s     r   test_ttl_tuple_keyTTLCacheTest.test_ttl_tuple_key   s    9EII&iU9-.x() )E* )(s   9B
B(c                    SSK J nJn  [        SU" SS9UR                  S9nSUS'   U R	                  S[        U5      5        UR                  UR                  5       5      nU R	                  / [        U5      5        U R	                  S[        U5      5        UR                  UR                  5       U" SS9-   5      nU R	                  S/[        U5      5        U R	                  S[        U5      5        g )Nr   )datetime	timedeltar   )daysr0   rC   )rS   rT   r   nowr2   r3   rD   list)r   rS   rT   r:   rE   s        r   test_ttl_datetimeTTLCacheTest.test_ttl_datetime   s    0	q(9NaCJ'X\\^,T%[)CJ'X\\^iQ.??@&4;/CJ'r   r   N)r   r   r   r   r!   Cacher;   r@   rF   rL   rP   rX   r   r   r   r   r,   r,      s'    E6,p&81#f(	+(r   r,   )
r)   unittest
cachetoolsr    r   r   r!   TestCaser,   r   r   r   <module>r_      s?        K8 K
o(8$$n o(r   