§
    Ètºf  ã                   ó¾   — 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Ô4µnÑ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Ô2µLÑ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Ô4Õ6LÑ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Ô5Õ7KÑ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×+Ò+­F©H¬HÑ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ˆØ�Š�u˜cÑ"Ô"Ð"Ø×ÒÐ/Ð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Ž   ø€ õ ‘8”8ˆÝ‘>”>ˆØ!&Ð(GÐ(GÐ(GÐ(GÐ HˆÔÝ˜>°Ð6Ñ6Ô6ˆØ Ÿš u¨cÑ2Ô2ˆØˆØ×Ò˜fœmÑ,Ô,Ð,Ø×Ò˜ 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ˆØ Ÿš u¨cÑ2Ô2ˆØˆØ×Ò˜fœmÑ,Ô,Ð,Ø×Ò˜f Qœi­Ñ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   