
    tf                         d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ  G d	 d
e          Z G d de          ZdS )z$
Tests for L{twisted.names.common}.
    )verifyClass)	IResolver)ResolverBase)EFORMATENAMEENOTIMPEREFUSEDESERVERQuery)DNSFormatErrorDNSNameErrorDNSNotImplementedErrorDNSQueryRefusedErrorDNSServerErrorDNSUnknownError)Failure)SynchronousTestCasec                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
ExceptionForCodeTestsz5
    Tests for L{ResolverBase.exceptionForCode}.
    c                 6    t                      j        | _        d S N)r   exceptionForCodeselfs    ]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/names/test/test_common.pysetUpzExceptionForCodeTests.setUp   s     , ?    c                 l    |                      |                     t                    t                     dS )zd
        L{ResolverBase.exceptionForCode} converts L{EFORMAT} to
        L{DNSFormatError}.
        N)assertIsr   r   r   r   s    r   test_eformatz"ExceptionForCodeTests.test_eformat"   ,    
 	d++G44nEEEEEr   c                 l    |                      |                     t                    t                     dS )zd
        L{ResolverBase.exceptionForCode} converts L{ESERVER} to
        L{DNSServerError}.
        N)r   r   r
   r   r   s    r   test_eserverz"ExceptionForCodeTests.test_eserver)   r!   r   c                 l    |                      |                     t                    t                     dS )zX
        L{ResolverBase.exceptionForCode} converts L{ENAME} to L{DNSNameError}.
        N)r   r   r   r   r   s    r   
test_enamez ExceptionForCodeTests.test_ename0   s,     	d++E22LAAAAAr   c                 l    |                      |                     t                    t                     dS )zl
        L{ResolverBase.exceptionForCode} converts L{ENOTIMP} to
        L{DNSNotImplementedError}.
        N)r   r   r   r   r   s    r   test_enotimpz"ExceptionForCodeTests.test_enotimp6   s-    
 	d++G446LMMMMMr   c                 l    |                      |                     t                    t                     dS )zk
        L{ResolverBase.exceptionForCode} converts L{EREFUSED} to
        L{DNSQueryRefusedError}.
        N)r   r   r	   r   r   s    r   test_erefusedz#ExceptionForCodeTests.test_erefused=   s-    
 	d++H557KLLLLLr   c                 z    |                      |                     t                                t                     dS )zr
        L{ResolverBase.exceptionForCode} converts any other response code to
        L{DNSUnknownError}.
        N)r   r   objectr   r   s    r   
test_otherz ExceptionForCodeTests.test_otherD   s0    
 	d++FHH55GGGGGr   N)__name__
__module____qualname____doc__r   r    r#   r%   r'   r)   r,    r   r   r   r      s         @ @ @F F FF F FB B BN N NM M MH H H H Hr   r   c                   *    e Zd ZdZd Zd Zd Zd ZdS )
QueryTestsz*
    Tests for L{ResolverBase.query}.
    c                 :    t          t          t                     dS )zF
        L{ResolverBase} provides the L{IResolver} interface.
        N)r   r   r   r   s    r   "test_resolverBaseProvidesIResolverz-QueryTests.test_resolverBaseProvidesIResolverQ   s     	I|,,,,,r   c                     g t                      }dfdi|_        t          dd          }|                    |d           |                     dg           dS )z
        L{ResolverBase.query} looks up a method to invoke using the type of the
        query passed to it and the C{typeToMethod} mapping on itself.
        90  c                 2                         | |f          S r   )append)querytimeoutresultss     r   <lambda>z6QueryTests.test_typeToMethodDispatch.<locals>.<lambda>_   s    '..%9I*J*J r      example.comnametype{   )r>   rB   N)r   typeToMethodr   r:   assertEqual)r   resolverr:   r<   s      @r   test_typeToMethodDispatchz$QueryTests.test_typeToMethodDispatchW   st    
 >>JJJJ!
 >666uc"""/0':::::r   c                    t                      t                      }dfdi|_        t          dd          }|                    |d          }g }|                    |j                   |                     |d                    dS )z
        L{ResolverBase.query} returns a L{Deferred} which fires with the result
        of the method found in the C{typeToMethod} mapping for the type of the
        query passed to it.
        i1  c                     S r   r1   )r:   r;   expecteds     r   r=   z4QueryTests.test_typeToMethodResult.<locals>.<lambda>m   s    x r   r>   r?   rB   r   N)r+   r   rC   r   r:   addBothr9   rD   )r   rE   r:   queryDeferredresultrI   s        @r   test_typeToMethodResultz"QueryTests.test_typeToMethodResulte   s     88>>!&(G(G(G(G H>666 uc22fm,,,6!9-----r   c                 8   t                      }i |_        t          dd          }|                    |d          }g }|                    |j                   |                     |d         t                     |d                             t                     dS )z
        L{ResolverBase.query} returns a L{Deferred} which fails with
        L{NotImplementedError} when called with a query of a type not present in
        its C{typeToMethod} dictionary.
        r>   r7   r?   rB   r   N)
r   rC   r   r:   rJ   r9   assertIsInstancer   trapNotImplementedError)r   rE   r:   rK   rL   s        r   test_unknownQueryTypez QueryTests.test_unknownQueryTypet   s      >> ">666 uc22fm,,,fQi111q	*+++++r   N)r-   r.   r/   r0   r5   rF   rM   rR   r1   r   r   r3   r3   L   sZ         - - -; ; ;. . ., , , , ,r   r3   N)r0   zope.interface.verifyr   twisted.internet.interfacesr   twisted.names.commonr   twisted.names.dnsr   r   r   r	   r
   r   twisted.names.errorr   r   r   r   r   r   twisted.python.failurer   twisted.trial.unittestr   r   r3   r1   r   r   <module>rZ      sV   
 . - - - - - 1 1 1 1 1 1 - - - - - - O O O O O O O O O O O O O O O O                + * * * * * 6 6 6 6 6 6/H /H /H /H /H/ /H /H /Hd5, 5, 5, 5, 5,$ 5, 5, 5, 5, 5,r   