
H/\c           @   s  d  d l  Z  d  d l  m Z d  d l Z d  d l Z d  d l j Z d  d l Z d  d l Z d  d l	 m	 Z	 d  d l
 Z
 d  d l j Z d  d l m Z d  d l m Z d  d l m Z e  j   j Z e d e  e e d d  d k	 r d	 e j _ n  d  d
 l m Z d  d l m Z d  d l m Z d  d l Z  e j e j k sMt  e j e j k set  e j  d d  d k Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d d d d  Z* d e j+ f d     YZ+ d e+ f d     YZ, e* e, d  e* e, d  d e+ f d     YZ- e* e- e j.  d  e+ f d!     YZ/ e* e/ d" d# e j0 d$ d% e* e/ d& d# e j0 d$ d' d( e+ f d)     YZ1 e* e1 d*  d+ e+ f d,     YZ2 e* e2 d-  d. e+ f d/     YZ3 e* e3 d0 d# e j0 d$ d' d1 e+ f d2     YZ4 e* e4 d3  d  d4 l5 m6 Z6 d5 e6 f d6     YZ7 e j8 e j9 d7  d8 e+ f d9     Y Z: e: j;   d: e+ f d;     YZ< e* e< e< j=  d< e+ f d=     YZ> d> e+ f d?     YZ? d@ e+ f dA     YZ@ e* e@ dB dC d# e o
e d$ dD e* e@ dB jA dE  dE  dF e  j jB jC f dG     YZD dH e+ f dI     YZE e* eE dJ  dK e+ f dL     YZF e* eF dM  e j8 e j0 dN  dO e+ f dP     Y ZG dQ e+ f dR     YZH dS e+ f dT     YZI dU e+ f dV     YZJ eK dW k re jL   n  d S(X   iN(   t   monkey(   t   time(   t   log(   t   six(   t   xranges   Resolver: %st   pooli   (   t   RESOLVER_NOT_SYSTEM(   t   RESOLVER_DNSPYTHON(   t   PY2t   GEVENT_DEBUGt    t   tracec         G   sd   y6 |  |   } t  | t  s1 t t |    | SWn' t k
 r_ } t r[ t j   n  | SXd  S(   N(   t
   isinstancet   BaseExceptiont   AssertionErrort   reprt	   Exceptiont   DEBUGt	   tracebackt	   print_exc(   t   functiont   argst   resultt   ex(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   _run&   s    "c         C   s|   t  |  } | j d  r, | d  d } n  y3 |  j j d d  } |  j } d | | | f SWn t k
 rw |  | SXd  S(   Ns   ,)it   )s   gevent._socketcommont   gevents   %s:%s%s(   R   t   endswitht
   __module__t   replacet   __name__t   AttributeError(   R   R   t   modulet   name(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   format_call1   s    	c         C   s   t  |  t  r d |  f } n d |  f } d | d f } d t |  t |  } | d k rp d | } n d } t | | |  d  S(	   Ns     -=>  raised %rs     -=>  returned %rs    %.2fmsg     @@iP   i    t    R
   (   R   R   t   lenR   (   R   t   secondst   msgt   time_mst   space(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   log_fresult=   s    c         G   sa   t  r t t |  |   n  t   } t |  |  } t   | } t  rW t | |  n  | | f S(   N(   R   R   R"   R   R   R)   (   R   R   t   deltaR   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   runK   s    	c         G   s$   t  t | |   t |  |  d  S(   N(   R   R"   R)   (   R   t   runtimeR   R   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   log_callV   s    c         C   s   |  j  d  } | j  d  } | r | r | | k rF | d
 k rF t S|  j d  j | j d   s | j d  j |  j d   r t S| d k r | d k r |  j d  d  | j d  d  k r t Sn  |  j d d  d	 | j d d  d	 k S(   s  
    >>> compare_relaxed('2a00:1450:400f:801::1010', '2a00:1450:400f:800::1011')
    True

    >>> compare_relaxed('2a00:1450:400f:801::1010', '2aXX:1450:400f:900::1011')
    False

    >>> compare_relaxed('2a00:1450:4016:800::1013', '2a00:1450:4008:c01::93')
    True

    >>> compare_relaxed('2001:470::e852:4a38:9d7f:0', '2001:470:6d00:1c:1::d00')
    True

    >>> compare_relaxed('2001:470:4147:4943:6161:6161:2e74:6573', '2001:470::')
    True

    >>> compare_relaxed('2607:f8b0:6708:24af:1fd:700:60d4:4af', '2607:f8b0:2d00::f000:0')
    True

    >>> compare_relaxed('a.google.com', 'b.google.com')
    True

    >>> compare_relaxed('a.google.com', 'a.gevent.org')
    False
    t   :i   i   i   i   i   t   .i   i(   i   i   i   i   (   t   countt   Truet   rstript
   startswitht   split(   t   at   bt
   a_segmentst
   b_segments(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   compare_relaxed[   s    B>c         C   s:   x3 |  D]+ } t  | t  o+ t |  d k s t Sq Wt S(   Ni   (   R   t   tupleR$   t   FalseR1   (   t   lstt   item(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   contains_5tuples   s    !c         C   s   t  |   t  |  k	 r t S|  | k r, t St |  t j  rK t |  |  Sy  t |   t |  k rj t SWn t k
 r t SXt	 |   r t	 |  r t
 |   }  t
 |  } n  t d   t |  |  D  S(   so  
    >>> relaxed_is_equal([(10, 1, 6, '', ('2a00:1450:400f:801::1010', 80, 0, 0))], [(10, 1, 6, '', ('2a00:1450:400f:800::1011', 80, 0, 0))])
    True

    >>> relaxed_is_equal([1, '2'], (1, '2'))
    False

    >>> relaxed_is_equal([1, '2'], [1, '2'])
    True

    >>> relaxed_is_equal(('wi-in-x93.1e100.net', 'http'), ('we-in-x68.1e100.net', 'http'))
    True
    c         s   s$   |  ] \ } } t  | |  Vq d  S(   N(   t   relaxed_is_equal(   t   .0t   xt   y(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pys	   <genexpr>   s    (   t   typeR;   R1   R   R   t   string_typesR9   R$   t	   TypeErrorR>   t   sortedt   allt   zip(   R5   R6   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR?      s    c            sp  t        f d   } | d  k rr   r<  j } n t j d d t    } | sr t t     n     f d   } d | | _ | |  | j |     f d   } d | | _ | |  | j |     f d   } d	 | | _ | |  | j |     f d
   }	 d | |	 _ | |  |	 j |	     f d   }
 d | |
 _ | |  |
 j |
  d  S(   Nc            sG     r! t  j     |  } n  t |  |  sC t |  | |  n  d  S(   N(   t	   greentestt   skipIft   hasattrt   setattr(   t   kt   nt   func(   t   skipt   skip_reason(    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   _setattr   s    s   [^\w]+t   _c            s,     r    n  } |  j  d | d  d  S(   Nt   getaddrinfot   http(   t   _test(   t   selfRA   (   t   callt   hostname(    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test1   s    s   test_%s_getaddrinfoc            sM     r    n  } |  j  d |  } t | t  sI |  j  d |  n  d  S(   Nt   gethostbynamet   gethostbyaddr(   RV   R   R   (   RW   RA   t   ipaddr(   RX   RY   (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test2   s    s   test_%s_gethostbynamec            s)     r    n  } |  j  d |  d  S(   Nt   gethostbyname_ex(   RV   (   RW   RA   (   RX   RY   (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test3   s    s   test_%s_gethostbyname_exc            s)     r    n  } |  j  d |  d  S(   NR\   (   RV   (   RW   RA   (   RX   RY   (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test4   s    s   test_%s_gethostbyaddrc            s2     r    n  } |  j  d | d f d  d  S(   Nt   getnameinfoiP   i    (   RV   (   RW   RA   (   RX   RY   (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test5   s    s   test_%s_getnameinfo(   t   callablet   NoneR   t   ret   subR   R   (   t   klassRY   R!   RP   RQ   RR   RZ   R^   R`   Ra   Rc   (    (   RX   RY   RP   RQ   s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   add   s,    t   TestCasec           B   sY   e  Z d  Z d Z e Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z RS(	   i   c         C   sW   |  j  s t St | t  rA t | t  rA t |  t |  k	 St |  t |  k S(   N(   t   verbose_dnsR;   R   R   RC   R   (   RW   t   result1t   result2(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   should_log_results   s
    	c         G   s#  t  t |  } t j d |  } t | |  \ } } t | |  \ } } t r |  j | |  r t d  t | | | |  t | | | |  n  |  j	 | | |  |  j
 r| | d k r| d k rd | | | d | d f }	 | | d k rd }
 n d	 }
 t d
 |
 |	  n  | S(   Nt   socketR
   g{Gz?g{Gz?s(   gevent:%s%s took %dms versus %dms stdlibg     @@i   t   VERYt   quites   
WARNING: %s slow: %s(   t   getattrt   gevent_socketR    t   get_originalR+   R   Rn   R   R-   t   assertEqualResultsRk   (   RW   RO   R   t   gevent_funct	   real_funct   real_resultt	   time_realt   gevent_resultt   time_geventR&   t   word(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyRV      s     
%	c         C   s0   d | } t  |  |  r, t |  |  |  S| S(   Nt   _normalize_result_(   RK   Rr   (   RW   R   t	   func_namet	   norm_name(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   _normalize_result  s    
c         C   s   t  s t | t  r | Sy | d j   Wn" t k
 r? n t k
 rP | SX| d } | d d g k ry d g } n  | d j   g  | f S(   Ni   s	   127.0.0.1i    (   R   R   R   t   sortR   t
   IndexErrort   lower(   RW   R   t   ips(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt"   _normalize_result_gethostbyname_ex  s    
c         C   sw   t  s
 | St t d  rW t | t  rW g  | D] } | d t j k r/ | ^ q/ } n  t | t  rs | j   n  | S(   Nt   SOCK_RAWi   (   R   RK   Ro   R   t   listR   R   (   RW   R   RA   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   _normalize_result_getaddrinfo%  s    /c         C   s2   t  s
 | St | t  r. | d g  | d f S| S(   Ni    i   (   R   R   R:   (   RW   R   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   _normalize_result_gethostbyaddr0  s
    c         C   s   t  j t  j t f } t | |  rb t | |  rb t |  t |  k	 r^ t d | |  n  d  S|  j | |  } |  j | |  } t |  } t |  } | | k r d  St	 | |  r d  St
 r t | |  r t | |  r d  S|  j | |  d  S(   Ns8   WARNING: error type mismatch: %r (gevent) != %r (stdlib)(   Ro   t   gaierrort   herrorRE   R   RC   R   R   R   R?   R   t   assertEqual(   RW   Rx   Rz   RO   t   errorst   real_result_reprt   gevent_result_repr(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyRu   ;  s$    N(   R   R   t   __timeout__Re   t   switch_expectedR;   Rk   Rn   RV   R   R   R   R   Ru   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyRj      s   						t   TestTypeErrorc           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   \  s   i   t   TestHostnamec           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   c  s   t   TestLocalhostc           B   s5   e  Z d    Z e j r3 e j r3 e r3 d   Z n  RS(   c         C   s    t  r
 d St t |   j |  S(   N(    (   R   t   superR   R   (   RW   R   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   p  s    c         C   sH   t  t |   j |  } t | t  rD | d | d d g f } n  | S(   Ni    i   s	   127.0.0.1(   R   R   R   R   R:   (   RW   R   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   x  s    (   R   R   R   RI   t   RUNNING_ON_TRAVISR   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   i  s   	s   ip6-localhostRP   RQ   sJ   ares fails here, for some reason, presumably a badly configured /etc/hostst	   localhostsO   Beginning Dec 1 2017, ares started returning ip6-localhost instead of localhostt   TestNonexistentc           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   t   nonexistentxxxyyyt   Test1234c           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   s   1.2.3.4t
   Test127001c           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   s	   127.0.0.1t   TestBroadcastc           B   s5   e  Z e Z e r3 e j d   d    Z e Z n  RS(   s4   ares raises errors for broadcasthost/255.255.255.255c         C   s   d  S(   N(    (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test__broadcast__gethostbyaddr  s    (	   R   R   R;   R   R   t   unittestRP   R   t   test__broadcast__gethostbyname(    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   s   <broadcast>(   t	   HostsFilet   SanitizedHostsFilec           B   s   e  Z d    Z RS(   c         c   s   x t  t |   j   D]k \ } } t ra | j d  s | d k s | d k s | d k ra q n  | j d  rv q n  | | f Vq Wd  S(   Nt   locals   255.255.255.255t   broadcasthostR   (   R   R   t   iter_all_host_addr_pairsR   R   (   RW   R!   t   addr(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s    "(   R   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   sY   This sometimes randomly fails on Travis with ares and on appveyor, beginning Feb 13, 2018t   TestEtcHostsc           B   s/   e  Z e e j d  d   Z e d    Z RS(   t   GEVENTTEST_MAX_ETC_HOSTSt   10c         C   s   t  t j j t j j t  d   } t | j    } t |  |  j	 k re t
 re | |  j	  } n  x. | D]& \ } } t |  |  t |  |  ql Wd  S(   Ns   hosts_file.txt(   R   t   ost   patht   joint   dirnamet   __file__RF   R   R$   t	   MAX_HOSTSR   Ri   (   t   clst   hft   all_etc_hostst   hostt   ip(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   populate_tests  s    (   R   R   t   intR   t   getenvR   t   classmethodR   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   t   TestGeventOrgc           B   s   e  Z d  Z RS(   s   www.gevent.org(   R   R   t   HOSTNAME(    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   t
   TestFamilyc           B   s;   e  Z e d     Z d   Z d   Z d   Z d   Z RS(   c         C   s7   t  |  d  s0 t t d  t j d   |  _ n  |  j S(   Nt   _resultRT   (   RK   Rr   Ro   R   R   Re   R   (   R   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt	   getresult  s    !c         C   s2   |  j  |  j   t j t j d  t j  d  d  S(   NRT   (	   Ru   R   Rs   RT   R   R   Re   Ro   t   AF_INET(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt	   test_inet  s    c         C   s2   |  j  |  j   t j t j d  t j  d  d  S(   NRT   (	   Ru   R   Rs   RT   R   R   Re   Ro   t	   AF_UNSPEC(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_unspec  s    c         C   sO   |  j  d t j d  d  |  j  d t j d  d  |  j  d t j d  d  d  S(   NRT   i   i i(   RV   R   R   Re   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_badvalue  s    c         C   s   |  j  d t j d  d  S(   NRT   RA   (   RV   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_badtype	  s    (   R   R   R   R   R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s
   			t   Test_getaddrinfoc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e j e d	  d
    Z e j e d  d    Z RS(   c         G   s   |  j  d |  d  S(   NRT   (   RV   (   RW   R   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   _test_getaddrinfo  s    c         C   s   |  j  t j d  d  S(   NiP   (   R   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_80  s    c         C   s   |  j  t j d  d  S(   Nt   80(   R   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_int_string  s    c         C   s   |  j  t j d  d  S(   Ni    (   R   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_0  s    c         C   s   |  j  t j d  d  S(   NRU   (   R   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt	   test_http  s    c         C   s   |  j  d d  d  S(   Ns   myhost.mytldi5   (   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_notexistent_tld  s    c         C   s   |  j  d d  d  S(   Ns"   sdfsdfgu5e66098032453245wfdggd.comiP   (   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_notexistent_dot_com!  s    c         C   s%   |  j  t j d t j t j d d  S(   Ni4   i    (   R   R   R   Ro   R   t   SOCK_STREAM(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyRZ   $  s    c         C   s"   |  j  t j d t j t j d  S(   Ni5   i   (   R   R   R   Ro   R   t
   SOCK_DGRAM(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR^   '  s    s0   dnspython only returns some of the possibilitiesc         C   s   |  j  d d t j  S(   Ns
   google.comRU   (   R   Ro   t   AF_INET6(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR`   *  s    s   Enums only on Python 3.4+c         C   sg   t  j d d t j t j t j  } | d \ } } } } } |  j | t j  |  j | t j  d  S(   Ns   example.comiP   i    (   Rs   RT   Ro   R   R   t   IPPROTO_TCPt   assertIs(   RW   t   gait   aft   socktypet   _protot
   _canonnamet   _sa(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt
   test_enums0  s    (   R   R   R   R   R   R   R   R   R   RZ   R^   R   RJ   R   R`   RI   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   										t   TestInternationalc           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   >  s   u   президент.рфt   russians$   dnspython can actually resolve theset   idnat   TestInterrupted_gethostbynamec           B   s,   e  Z e j d     Z d   Z d   Z RS(   c         C   s   t  t |   j   d  S(   N(   R   R   t   test_returns_none_after_timeout(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   N  s    c      
   C   sl   t  j | t  T x@ t d  D]2 } y t j d |  Wq  t j k
 rQ q  Xq  Wt d   Wd  QXd  S(   Ni@B s   www.x%s.coms   Timeout was not raised(	   R   t   TimeoutR;   R   Rs   R[   Ro   t   errorR   (   RW   t   timeoutt   index(    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   waitR  s    c         C   s9   y t  j   j j   Wn t k
 r4 t j   n Xd  S(   N(   R   t   get_hubt
   threadpoolR   R   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   cleanup[  s    (   R   R   RI   t   ignores_leakcheckR   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR   J  s   		t   TestBadNamec           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   t   xxxxxxxxxxxxt	   TestBadIPc           B   s   e  Z RS(    (   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   s	   1.2.3.400s$   Travis began returning ip6-localhostt   Test_getnameinfo_127001c           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   |  j  d d d  d  S(   NRb   s	   127.0.0.1iP   i    (   s	   127.0.0.1iP   (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test  s    c         C   s-   |  j  d d d  |  j  d d t j  d  S(   NRb   s	   127.0.0.1i  i    (   s	   127.0.0.1i  (   s	   127.0.0.1i  (   RV   Ro   t   NI_DGRAM(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt
   test_DGRAM  s    c         C   s   |  j  d d t j  d  S(   NRb   s	   127.0.0.1iP   (   s	   127.0.0.1iP   (   RV   Ro   t	   NI_NOFQDN(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_NOFQDN  s    c         C   s   |  j  d d t j  d  S(   NRb   s	   127.0.0.1iP   (   s	   127.0.0.1iP   (   RV   Ro   t   NI_NAMEREQD(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_NAMEREQD  s    (   R   R   R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   			t   Test_getnameinfo_geventorgc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s?   |  j  d t j d f d  |  j  d t j d f t j  d  S(   NRb   iP   i    (   RV   R   R   Ro   t   NI_NUMERICHOST(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_NUMERICHOST  s    c         C   s#   |  j  d t j d f t j  d  S(   NRb   iP   (   RV   R   R   Ro   t   NI_NUMERICSERV(   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_NUMERICSERV  s    c         C   s    |  j  d t j d f d  d  S(   NRb   iP   i    (   RV   R   R   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_domain1  s    c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgiP   i    (   s   www.gevent.orgiP   (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_domain2  s    c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgi    (   s   www.gevent.orgi    (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_port_zero  s    (   R   R   R   R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s
   				t   Test_getnameinfo_failc           B   s   e  Z d    Z d   Z RS(   c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgRU   i    (   s   www.gevent.orgRU   (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_port_string  s    c         C   s   |  j  d d d  d  S(   NRb   R   iP   iO(   R   iP   (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   test_bad_flags  s    (   R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s   	t   TestInvalidPortc           B   s>   e  Z d    Z d   Z d   Z e j e d  d    Z RS(   c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgii    (   s   www.gevent.orgi(   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyRZ     s    c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgi    (   s   www.gevent.orgN(   RV   Re   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR^     s    c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgRA   i    (   s   www.gevent.orgRA   (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR`     s    s   System resolvers do funny things with this: macOS raises gaierror, Travis CI returns (readthedocs.org, '0'). It's hard to match that exactly. dnspython raises OverflowError.c         C   s   |  j  d d d  d  S(   NRb   s   www.gevent.orgi   i    (   s   www.gevent.orgi   (   RV   (   RW   (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyRa     s    (	   R   R   RZ   R^   R`   R   RJ   R   Ra   (    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyR     s
   				t   __main__(M   R   R    R   Rf   t   gevent.testingt   testingRI   R   Ro   R   R   t   gevent.socketRs   t   gevent.testing.utilR   R   t   gevent.testing.sixR   R   t   resolverRr   Re   R   t   sizet   gevent.testing.sysinfoR   R   R   t   gevent.testing.timingR   R   R   R   R   R   R"   R)   R+   R-   R9   R>   R?   Ri   Rj   R   R   t   gethostnameR   R   R   R   R   R   t   gevent.resolver.dnspythonR   R   RJ   t   RUNNING_ON_CIR   R   R   R   R   R   R   t   encodet   timingt   AbstractGenericWaitTestCaseR   R   R   R   R   R   R   R   t   main(    (    (    s<   lib/python2.7/site-packages/gevent/tests/test__socket_dns.pyt   <module>   s   						(		 2							
	16	