ϪfdZddlmZddlmZddlmZddlmZm Z m Z m Z m Z m Z ddlmZmZmZmZmZmZddlmZddlmZGd d eZGd d eZy )z$ Tests for L{twisted.names.common}. ) verifyClass) IResolver) ResolverBase)EFORMATENAMEENOTIMPEREFUSEDESERVERQuery)DNSFormatError DNSNameErrorDNSNotImplementedErrorDNSQueryRefusedErrorDNSServerErrorDNSUnknownError)Failure)SynchronousTestCasec:eZdZdZdZdZdZdZdZdZ dZ y ) ExceptionForCodeTestsz5 Tests for L{ResolverBase.exceptionForCode}. c6tj|_yN)rexceptionForCodeselfs @/usr/lib/python3/dist-packages/twisted/names/test/test_common.pysetUpzExceptionForCodeTests.setUps , ? ?cV|j|jtty)zd L{ResolverBase.exceptionForCode} converts L{EFORMAT} to L{DNSFormatError}. N)assertIsrrr rs r test_eformatz"ExceptionForCodeTests.test_eformat" d++G4nErcV|j|jtty)zd L{ResolverBase.exceptionForCode} converts L{ESERVER} to L{DNSServerError}. N)rrr rrs r test_eserverz"ExceptionForCodeTests.test_eserver)r!rcV|j|jtty)zX L{ResolverBase.exceptionForCode} converts L{ENAME} to L{DNSNameError}. N)rrrr rs r test_enamez ExceptionForCodeTests.test_ename0s d++E2LArcV|j|jtty)zl L{ResolverBase.exceptionForCode} converts L{ENOTIMP} to L{DNSNotImplementedError}. N)rrrrrs r test_enotimpz"ExceptionForCodeTests.test_enotimp6s d++G46LMrcV|j|jtty)zk L{ResolverBase.exceptionForCode} converts L{EREFUSED} to L{DNSQueryRefusedError}. N)rrr rrs r test_erefusedz#ExceptionForCodeTests.test_erefused=s d++H57KLrc^|j|jtty)zr L{ResolverBase.exceptionForCode} converts any other response code to L{DNSUnknownError}. N)rrobjectrrs r test_otherz ExceptionForCodeTests.test_otherDs d++FH5GrN) __name__ __module__ __qualname____doc__rr r#r%r'r)r,rrrrs1@FFB NMHrrc(eZdZdZdZdZdZdZy) QueryTestsz* Tests for L{ResolverBase.query}. c,ttty)zF L{ResolverBase} provides the L{IResolver} interface. N)rrrrs r"test_resolverBaseProvidesIResolverz-QueryTests.test_resolverBaseProvidesIResolverQs I|,rcgt}dfdi|_tdd}|j|d|j dgy)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. 90c*j||fSr)append)querytimeoutresultss rz6QueryTests.test_typeToMethodDispatch.._s'..%9I*Jr example.comnametype{)r>rBN)r typeToMethodr r: assertEqual)rresolverr:r<s @rtest_typeToMethodDispatchz$QueryTests.test_typeToMethodDispatchWsQ > J! >6uc" /0':rctt}dfdi|_tdd}|j |d}g}|j |j |j|dy)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. i1cSrr1)r:r;expecteds rr=z4QueryTests.test_typeToMethodResult..msxrr>r?rBrN)r+rrCr r:addBothr9rD)rrEr: queryDeferredresultrIs @rtest_typeToMethodResultz"QueryTests.test_typeToMethodResultesh 8>!&(G H>6 uc2 fmm, 6!9-rct}i|_tdd}|j|d}g}|j |j |j |dt|djty)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>r7r?rBrN) rrCr r:rJr9assertIsInstancertrapNotImplementedError)rrEr:rKrLs rtest_unknownQueryTypez QueryTests.test_unknownQueryTypetsk  > ">6 uc2 fmm, fQi1q *+rN)r-r.r/r0r5rFrMrRr1rrr3r3Ls- ; . ,rr3N)r0zope.interface.verifyrtwisted.internet.interfacesrtwisted.names.commonrtwisted.names.dnsrrrr r r twisted.names.errorr r rrrrtwisted.python.failurertwisted.trial.unittestrrr3r1rrrZsJ .1-OO+6/H//Hd5,$5,r