+
    Dfj                     t    R t ^ RIt^ RIHt ^ RIHtHt ^ RIHtH	t	 ^ RI
Ht  ! R R]P                  4      tR# )z#
Tests for L{twisted.names.cache}.
N)verifyClass)
interfacestask)cachedns)unittestc                   H   a  ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
CachingTestsz#
Tests for L{cache.CacheResolver}.
c                V    \        \        P                  \        P                  4       R# )z;
L{cache.CacheResolver} implements L{interfaces.IResolver}
N)r   r   	IResolverr   CacheResolver)selfs   &?/usr/lib/python3/dist-packages/twisted/names/test/test_cache.pytest_interfaceCachingTests.test_interface   s     	J((%*=*=>    c                $   \         P                  ! \        P                  ! R \        P                  \        P
                  R7      \        P                  ! 4       . . . 33/4      pVP                  R 4      P                  V P                  . . . 34      # )   example.comnametypecls)
r   r   r   QueryMXINtimelookupMailExchangeaddCallbackassertEqual)r   cs   & r   test_lookupCachingTests.test_lookup   sx    		~CFFGIIKRLJ
 ##N3??r2rl
 	
r   c                d   \         P                  ! R\         P                  \         P                  ^<\         P                  ! R^<4      4      .\         P                  ! R\         P                  \         P                  ^2\         P                  ! R^24      4      .\         P                  ! R\         P                  \         P                  ^(\         P                  ! R^(4      4      .3p\
        P                  ! 4       p\         P                  ! R\         P                  \         P                  R7      p\        P                  ! W2P                  4       V3/VR7      pVP                  ^(4       V P                  W4P                  4       V P                  VP                  R4      \         P                  4      # )zr
Cache entries passed into L{cache.CacheResolver.__init__} get
cancelled just like entries added with cacheResult
r   	127.0.0.1r   reactor)r   RRHeaderAr   Record_Ar   Clockr   r   r   secondsadvanceassertNotInassertFailurelookupAddressDomainError)r   rclockqueryr   s   &    r   test_constructorExpires$CachingTests.test_constructorExpires*   s&    "CEE3662s||KQS7T "CEE3662s||KQS7T "CEE3662s||KQS7T
$ 

		~CEEsvvF!(< =uM 	b(!!!//."A3??SSr   c                  a  \         P                  ! R\         P                  \         P                  ^<\         P                  ! R^<4      4      .\         P                  ! R\         P                  \         P                  ^2\         P                  ! R^24      4      .\         P                  ! R\         P                  \         P                  ^(\         P                  ! R^(4      4      .3p\
        P                  ! 4       p\        P                  ! VR7      pVP                  \         P                  ! R\         P                  \         P                  R7      V4       VP                  ^4       V 3R lpVP                  R4      P                  V4      # )z
When a cache lookup finds a cached entry from 1 second ago, it is
returned with a TTL of original TTL minus the elapsed 1 second.
r   r#   r$   r   c                 l  < SP                  V ^ ,          ^ ,          P                  ^;4       SP                  V ^,          ^ ,          P                  ^14       SP                  V ^,          ^ ,          P                  ^'4       SP                  V ^ ,          ^ ,          P                  P                  R4       R# )    r   N)r   ttlr   )resultr   s   &r   cbLookup0CachingTests.test_normalLookup.<locals>.cbLookupl   s    VAYq\--r2VAYq\--r2VAYq\--r2VAYq\..33^Dr   )r   r&   r'   r   r(   r   r)   r   r   cacheResultr   r+   r.   r   )r   r0   r1   r   r:   s   f    r   test_normalLookupCachingTests.test_normalLookupN   s    "CEE3662s||KQS7T "CEE3662s||KQS7T "CEE3662s||KQS7T
$ 

.	cii^#%%SVVLaPa	E ~.::8DDr   c                b   \         P                  ! R\         P                  \         P                  ^<\         P                  ! R^<4      4      .\         P                  ! R\         P                  \         P                  ^2\         P                  ! R^24      4      .\         P                  ! R\         P                  \         P                  ^(\         P                  ! R^(4      4      .3p\
        P                  ! 4       p\        P                  ! VR7      p\         P                  ! R\         P                  \         P                  R7      pVP                  WA4       VP                  ^(4       V P                  WCP                  4       V P                  VP                  R4      \         P                  4      # )zG
Once the TTL has been exceeded, the result is removed from the cache.
r   r#   r$   r   )r   r&   r'   r   r(   r   r)   r   r   r   r<   r+   r,   r-   r.   r/   )r   r0   r1   r   r2   s   &    r   test_cachedResultExpires%CachingTests.test_cachedResultExpirest   s     "CEE3662s||KQS7T "CEE3662s||KQS7T "CEE3662s||KQS7T
$ 

.		~CEEsvvF	eb(!!!//."A3??SSr   c                <   \         P                  ! R\         P                  \         P                  ^<\         P                  ! R^<4      4      .\         P                  ! R\         P                  \         P                  ^2\         P                  ! R^24      4      .\         P                  ! R\         P                  \         P                  ^(\         P                  ! R^(4      4      .3p\
        P                  ! 4       pR Vn        \        P                  ! \         P                  ! R\         P                  \         P                  R7      VP                  4       V3/VR7      pVP                  R4       V P                  VP                  R4      \         P                  4      # )z
When the cache is queried exactly as the cached entry should expire but
before it has actually been cleared, the cache does not return the
expired entry.
r   r#   c                      R # )N )argskwargss   *,r   <lambda>4CachingTests.test_expiredTTLLookup.<locals>.<lambda>   s    $r   r   r$   gN@)r   r&   r'   r   r(   r   r)   	callLaterr   r   r   r*   r+   r-   r.   r/   )r   r0   r1   r   s   &   r   test_expiredTTLLookup"CachingTests.test_expiredTTLLookup   s%    "CEE3662s||KQS7T "CEE3662s||KQS7T "CEE3662s||KQS7T
$ 

6		~CEEsvvFMMOI 
 	d!!!//."A3??SSr   rD   N)__name__
__module____qualname____firstlineno____doc__r   r    r3   r=   r@   rJ   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	      s5     ?
"TH$EL TD(T (Tr   r	   )rP   r   zope.interface.verifyr   twisted.internetr   r   twisted.namesr   r   twisted.trialr   TestCaser	   rD   r   r   <module>rY      s1   
  - - $ "lT8$$ lTr   