
                         0   S SK r S SKr " S S5      r " S S\ R                  \5      r " S S\ R                  \5      r " S S	\ R                  \5      r " S
 S\ R                  \5      r " S S\ R                  \5      r	 " S S\ R                  \5      r
g)    Nc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)DecoratorTestMixin   c                 (    U R                   " U40 UD6$ N)	DECORATOR)selfmaxsizekwargss      9platform/gsutil/third_party/cachetools/tests/test_func.py	decoratorDecoratorTestMixin.decorator   s    ~~g000    c                    U R                  SS9" S 5      nU R                  UR                  5       SSS.5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S	5        U R                  U" S
5      S
5        U R                  UR                  5       S5        g )N   r
   c                     U $ r    ns    r   <lambda>3DecoratorTestMixin.test_decorator.<locals>.<lambda>       Qr   Fr
   typedr   r   r   r      r   r   r   r   r   r   r   r         ?)r   r   r   r   r   assertEqualcache_parameters
cache_infor	   cacheds     r   test_decorator!DecoratorTestMixin.test_decorator
       *;7002E4RS**,l;A&**,l;A&**,l;c***,l;r   c                    U R                  SS9" S 5      nU R                  UR                  5       SSS.5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        UR	                  5         U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        g )	Nr   r   c                     U $ r   r   r   s    r   r   9DecoratorTestMixin.test_decorator_clear.<locals>.<lambda>   r   r   Fr   r   r   r   )r   r"   r#   r$   cache_clearr%   s     r   test_decorator_clear'DecoratorTestMixin.test_decorator_clear   s    *;7002E4RS**,l;A&**,l;**,l;A&**,l;r   c                    U R                  SS9" S 5      nU R                  UR                  5       SSS.5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S	5        U R                  U" S
5      S
5        U R                  UR                  5       S5        g )Nr   r   c                     U $ r   r   r   s    r   r   ;DecoratorTestMixin.test_decorator_nocache.<locals>.<lambda>!   r   r   Fr   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r    )r      r   r   r!   r%   s     r   test_decorator_nocache)DecoratorTestMixin.test_decorator_nocache    r)   r   c                    U R                  S S9" S 5      nU R                  UR                  5       S SS.5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S	5      S	5        U R                  UR                  5       S
5        g )Nr   c                     U $ r   r   r   s    r   r   ;DecoratorTestMixin.test_decorator_unbound.<locals>.<lambda>,   s    r   Fr   )r   r   Nr   r   )r   r   Nr   )r   r   Nr   r    )r   r   Nr   r!   r%   s     r   test_decorator_unbound)DecoratorTestMixin.test_decorator_unbound+   s    -k:002u4UV**,o>A&**,o>A&**,o>c***,o>r   c                 x   U R                  SSS9" S 5      nU R                  UR                  5       SSS.5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S	5      S	5        U R                  UR                  5       S
5        U R                  U" S	5      S	5        U R                  UR                  5       S5        g )Nr   Tr   c                     U $ r   r   r   s    r   r   9DecoratorTestMixin.test_decorator_typed.<locals>.<lambda>7   s    r   r   r   r   r   r    )r   r   r   r   )r   r   r   r   r!   r%   s     r   test_decorator_typed'DecoratorTestMixin.test_decorator_typed6   s   6{C002D4QR**,l;A&**,l;A&**,l;c***,l;c***,l;r   c                    U R                  S 5      nU R                  UR                  5       SSS.5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S5      S5        U R                  UR                  5       S5        U R                  U" S	5      S	5        U R                  UR                  5       S
5        g )Nc                     U $ r   r   r   s    r   r   ADecoratorTestMixin.test_decorator_user_function.<locals>.<lambda>D       !r      Fr   )r   r   rD   r   r   )r   r   rD   r   )r   r   rD   r   r    )r   r   rD   r   r!   r%   s     r   test_decorator_user_function/DecoratorTestMixin.test_decorator_user_functionC   s    ,002e4TU**,n=A&**,n=A&**,n=c***,n=r   c                    ^ U R                  S 5      m " U4S jS5      nT" U" S5      5        T" U" S5      5        U R                  T" U" S5      5      U" S5      5        g )Nc                     U $ r   r   r   s    r   r   ?DecoratorTestMixin.test_decorator_needs_rlock.<locals>.<lambda>O   rC   r   c                   .   > \ rS rSrS rS rU 4S jrSrg)FDecoratorTestMixin.test_decorator_needs_rlock.<locals>.RecursiveEqualsQ   c                     Xl         g r   
_use_cache)r	   	use_caches     r   __init__ODecoratorTestMixin.test_decorator_needs_rlock.<locals>.RecursiveEquals.__init__R   s    "+r   c                 ,    [        U R                  5      $ r   )hashrO   )r	   s    r   __hash__ODecoratorTestMixin.test_decorator_needs_rlock.<locals>.RecursiveEquals.__hash__U   s    DOO,,r   c                 h   > U R                   (       a  T" U 5        U R                   UR                   :H  $ r   rN   )r	   otherr&   s     r   __eq__MDecoratorTestMixin.test_decorator_needs_rlock.<locals>.RecursiveEquals.__eq__X   s(    ?? 4L%*:*:::r   rN   N)__name__
__module____qualname____firstlineno__rQ   rU   rY   __static_attributes__)r&   s   r   RecursiveEqualsrK   Q   s    ,-; ;r   r`   FT)r   r"   )r	   r`   r&   s     @r   test_decorator_needs_rlock-DecoratorTestMixin.test_decorator_needs_rlockN   sV    ,	; 	; 	u%&t$% 568MNr   r   N)r[   r\   r]   r^   r   r'   r.   r4   r9   r>   rE   ra   r_   r   r   r   r   r      s+    1	<	<	<	?<	>Or   r   c                   L    \ rS rSr\" \R                  R                  5      rSr	g)FIFODecoratorTestf   r   N)
r[   r\   r]   r^   staticmethod
cachetoolsfunc
fifo_cacher   r_   r   r   r   rd   rd   f   s    Z__778Ir   rd   c                   L    \ rS rSr\" \R                  R                  5      rSr	g)LFUDecoratorTestj   r   N)
r[   r\   r]   r^   rf   rg   rh   	lfu_cacher   r_   r   r   r   rk   rk   j       Z__667Ir   rk   c                   L    \ rS rSr\" \R                  R                  5      rSr	g)LRUDecoratorTestn   r   N)
r[   r\   r]   r^   rf   rg   rh   	lru_cacher   r_   r   r   r   rp   rp   n   rn   r   rp   c                       \ rS rSrS rSrg)MRUDecoratorTestr   c                 @   SS K nUR                  SS9 nUR                  S5        [        R                  R
                  " U40 UD6nS S S 5        U R                  [        W5      S5        U R                  US   R                  [        5        W$ ! , (       d  f       NN= f)Nr   T)recordalways)warningscatch_warningssimplefilterrg   rh   	mru_cacheassertNotEquallenassertIscategoryDeprecationWarning)r	   r
   r   ry   wds         r   r   MRUDecoratorTest.decorators   s    $$D$1Q!!(+))'<V<A 2 	CFA&admm%78 21s   3B
Br   N)r[   r\   r]   r^   r   r_   r   r   r   rt   rt   r   s    r   rt   c                   L    \ rS rSr\" \R                  R                  5      rSr	g)RRDecoratorTest~   r   N)
r[   r\   r]   r^   rf   rg   rh   rr_cacher   r_   r   r   r   r   r   ~   s    Z__556Ir   r   c                   L    \ rS rSr\" \R                  R                  5      rSr	g)TTLDecoratorTest   r   N)
r[   r\   r]   r^   rf   rg   rh   	ttl_cacher   r_   r   r   r   r   r      rn   r   r   )unittestcachetools.funcrg   r   TestCaserd   rk   rp   rt   r   r   r   r   r   <module>r      s     ]O ]O@9))+= 98x((*< 88x((*< 8	x((*< 	7h''); 78x((*< 8r   