ó
[³XMc           @   sz   d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m Z d d	 d „  ƒ  YZ	 d e j
 f d „  ƒ  YZ d S(
   s%   
Tests for L{twisted.python.compat}.
iÿÿÿÿN(   t   unittest(   t   sett	   frozensett   reducet   IterableCounterc           B   s&   e  Z d  d „ Z d „  Z d „  Z RS(   i    c         C   s   | |  _  d |  _ d  S(   Niÿÿÿÿ(   t   limt   i(   t   selfR   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   __init__   s    	c         C   s   |  S(   N(    (   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   __iter__   s    c         C   s1   |  j  d 7_  |  j  |  j k r* t ‚ n  |  j  S(   Ni   (   R   R   t   StopIteration(   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   next   s    	(   t   __name__t
   __module__R   R	   R   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR      s   	t   CompatTestCasec           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   si   i d d 6} t  | ƒ } |  j | | ƒ d | d <|  j | | ƒ t  | j ƒ  ƒ } |  j | | ƒ d  S(   Nt   bt   at   c(   t   dictt   assertEqualst   assertNotEqualst   items(   R   t   d1t   d2(    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   testDict    s    
c         C   s\   |  j  t d ƒ t ƒ |  j  t t ƒ t ƒ |  j  t d ƒ t ƒ |  j  t t ƒ t ƒ d  S(   Nt   hit    (   R   t   boolt   Truet   False(   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   testBool)   s    c         C   su  t  d ƒ g  } } x! t | ƒ D] } | j | ƒ q  W|  j | | ƒ | 2y) t | ƒ } x | j | j ƒ  ƒ q] Wn t k
 r‡ n X|  j | | ƒ | 2x' t t d ƒ ƒ D] } | j | ƒ q¯ W|  j | | ƒ | 2y/ t t d ƒ ƒ } x | j | j ƒ  ƒ qò Wn t k
 rn X|  j | | ƒ | 2x- t t d ƒ j d ƒ D] } | j | ƒ qJW|  j | | ƒ d  S(   Ni
   i   (   t   ranget   itert   appendR   R   R
   R   (   R   t   lst1t   lst2R   t   iterable(    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   testIteration/   s8    c         C   s6   |  j  t d t j ƒ ƒ |  j  t |  t j ƒ ƒ d  S(   Nu   hi(   t   assert_t
   isinstancet   typest   StringTypesR    t   TestCase(   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   testIsinstanceR   s    c         C   s0  |  j  d j d ƒ d ƒ |  j  d j d ƒ d ƒ |  j  d j d ƒ d ƒ |  j  d j d ƒ d ƒ |  j  d j d	 ƒ d ƒ |  j  d
 j d	 ƒ d ƒ |  j  d j d ƒ d ƒ |  j  d j d ƒ d ƒ |  j  d j d	 ƒ d ƒ |  j  d
 j d	 ƒ d ƒ |  j  d j d ƒ d ƒ |  j  d j d ƒ d ƒ d  S(   Ns    x t    s   x s    x xs   x xs    xs   x x s   	 x s   	 s    	x xs    x	 s    	s   x x 	t   x(   R   t   lstript   rstript   strip(   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt	   testStripY   s    c            sî   d d l  m ‰  ‡  f d †  } ‡  f d †  } |  j d | d ƒ ƒ |  j d | d ƒ ƒ |  j d | d ƒ ƒ |  j d | d ƒ ƒ |  j d | d ƒ ƒ |  j d | d ƒ ƒ |  j d | d
 d ƒ ƒ |  j d | d
 d d
 ƒ ƒ d  S(   Niÿÿÿÿ(   t	   inet_ntopc            s   ˆ  t  j |  ƒ S(   N(   t   sockett   AF_INET6(   R   (   R2   (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   <lambda>l   s    c            s   ˆ  t  j |  ƒ S(   N(   R3   t   AF_INET(   R   (   R2   (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR5   m   s    s   ::t    i   s   ::1i   s   s!   aef:b01:506:1001:ffff:9997:55:170s   
ïÿÿ™— Ups   1.0.1.0s     s   170.85.170.85s   ªUªUs   255.255.255.255s   ÿÿÿÿs   100::s   100::1i   t                   t                  t                  R9   t                 (   t   twisted.python.compatR2   R   (   R   t   ft   g(    (   R2   s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   testNToPi   s    c            sW  d d l  m ‰  ‡  f d †  } ‡  f d †  } |  j d | d ƒ ƒ |  j d | d ƒ ƒ |  j d	 | d
 ƒ ƒ |  j d% | d ƒ ƒ |  j d& | d ƒ ƒ |  j d d' | d ƒ ƒ |  j d | d ƒ ƒ |  j d) | d ƒ ƒ |  j d+ | d ƒ ƒ |  j d | d ƒ ƒ xB d d d d d d d  d! d" d# d$ g D] } |  j t | | ƒ q6Wd  S(,   Niÿÿÿÿ(   t	   inet_ptonc            s   ˆ  t  j |  ƒ S(   N(   R3   R4   (   R   (   R@   (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR5      s    c            s   ˆ  t  j |  ƒ S(   N(   R3   R6   (   R   (   R@   (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR5   €   s    t       s   0.0.0.0s   ÿ ÿ s   255.0.255.0s   ªªªªs   170.170.170.170R7   i   s   ::s   0::0t    i   s   1::s   EïvË Vï¯ë¬$®®s$   45ef:76cb:1a:56ef:afeb:bac:1924:aeaes   ::1i   s   s	   ::1.2.3.4t         ÿs   1:2:3:4:5:6:1.2.3.255s   1:2:3:4:5:6:7:8:s   :1:2:3:4:5:6:7:8s   1::2::3s   1:::3s   :::s   1:2s   ::1.2s	   1.2.3.4::s%   abcd:1.2.3.4:abcd:abcd:abcd:abcd:abcds*   1234:1.2.3.4:1234:1234:1234:1234:1234:1234s   1.2.3.4R8   R8   R;   R;   R:   t               t               (   R<   R@   R   t   assertRaisest
   ValueError(   R   R=   R>   t   badaddr(    (   R@   s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   testPToN|   s.    c         C   sü   t  ƒ  } | j d ƒ | j d ƒ | j d ƒ t | ƒ } | j ƒ  |  j | d d d g ƒ | j d ƒ t | ƒ } | j ƒ  |  j | d d g ƒ | j d ƒ t  d d g ƒ } | j | ƒ } t | ƒ } | j ƒ  |  j | d d d d g ƒ d S(   sG   
        L{set} should behave like the expected set interface.
        R   R   R   t   dt   rt   sN(   R   t   addt   listt   sortR   t   removet   discardt   union(   R   R   R   RJ   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   test_setš   s"    	


c         C   s›   t  d d g ƒ } |  j t t | d ƒ |  j t | ƒ d d g ƒ t  d d g ƒ } | j | ƒ } t | ƒ } | j ƒ  |  j | d d d d g ƒ d S(   sS   
        L{frozenset} should behave like the expected frozenset interface.
        R   R   RM   RK   RL   N(   R   RF   t   AttributeErrort   getattrR   RN   RR   RO   (   R   R   R   RJ   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   test_frozenset³   s    
c      	   C   s]   |  j  d t d „  d d d d d g ƒ ƒ |  j  d t d	 „  d d d d d g d ƒ ƒ d
 S(   sB   
        L{reduce} should behave like the builtin reduce.
        i   c         S   s   |  | S(   N(    (   R-   t   y(    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR5   Æ   s    i   i   i   i   i   i   c         S   s   |  | S(   N(    (   R-   RW   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR5   Ç   s    N(   R   R   (   R   (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   test_reduceÂ   s    +(   R   R   R   R   R%   R+   R1   R?   RI   RS   RV   RX   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyR      s   				#						(    (   t   __doc__R(   R3   t   twisted.trialR    R<   R   R   R   R   R*   R   (    (    (    s<   /usr/lib/python2.7/dist-packages/twisted/test/test_compat.pyt   <module>   s
   