mò
­fIc           @   sÌ   d  Z  d k l Z d k Z d k Z d k l Z l Z l Z l	 Z	 d k
 Z
 d k l Z e e d „  ƒ ƒ Z e e d „  ƒ ƒ Z d k l Z d e f d	 „  ƒ  YZ d
 „  Z e d j o e ƒ  n d S(   s/   
   Test cases for pyclbr.py
   Nick Mathewson
(   s   run_unittestN(   s	   ClassTypes   FunctionTypes
   MethodTypes   BuiltinFunctionType(   s   TestCasec           C   s   d  S(   N(   t   None(    (    (    t-   /mit/python/lib/python2.4/test/test_pyclbr.pyt   <lambda>   s    c         C   s   d  S(   N(   R    (   t   c(    (    R   R      s    (   s	   getstatust
   PyclbrTestc           B   sV   t  Z d „  Z d „  Z d „  Z d „  Z d  f  d „ Z d „  Z d „  Z	 d „  Z
 RS(	   Nc         C   s`   t  | ƒ t  | ƒ At  | ƒ } | o5 t i d | | | f IJ|  i d | i	 ƒ  ƒ n d S(   s0    succeed iff {l1} - {ignore} == {l2} - {ignore} s   l1=%r
l2=%r
ignore=%rs
   %r missingN(
   t   sett   l1t   l2t   ignoret   missingt   syst   stderrt   selft   failt   pop(   R   R   R   R   R	   (    (    R   t   assertListEq   s
      c         C   sY   | | j o d Sn t | | ƒ p d G| GHn |  i t | | ƒ d | | f ƒ d S(   s2    succeed iff hasattr(obj,attr) or attr in ignore. Ns   ???s   expected hasattr(%r, %r)(   t   attrR   t   hasattrt   objR   t
   failUnless(   R   R   R   R   (    (    R   t   assertHasattr"   s       c         C   sV   | | j o d Sn | i | ƒ p t i d I| IJn |  i | i | ƒ ƒ d S(   s0    succeed iff obj.has_key(key) or key in ignore. Ns   ***(   t   keyR   R   t   has_keyR
   R   R   R   (   R   R   R   R   (    (    R   t   assertHaskey*   s      c         C   s2   | | j o! | | j o |  i | | ƒ n d S(   s2    succeed iff a == b or a in ignore or b in ignore N(   t   aR   t   bR   t   assertEquals(   R   R   R   R   (    (    R   t   assertEqualsOrIgnored1   s     c         C   s,  | d
 j o t | t ƒ  h  d g ƒ } n t i | ƒ } d „  } xq| i	 ƒ  D]c\ } } | | j o qQ n |  i | | | ƒ t | | ƒ } t | t i ƒ oM |  i t | t t f ƒ ƒ | i | j o qQ n |  i | i | i  ƒ qQ |  i t | t t f ƒ ƒ g  } | i D] }	 | |	 i q~ } g  } | i  D] }	 | t |	 d |	 ƒ qD~ } y |  i" | | | ƒ Wn t# i$ d | IJ‚  n Xg  } xD | i& i' ƒ  D]3 } | | t | | ƒ | ƒ o | i) | ƒ q±q±Wg  } x_ | i+ i' ƒ  D]N } | d  d j o* | d d j o | i) d | | ƒ qþ| i) | ƒ qþWyF |  i" | | | ƒ |  i | i | i  ƒ |  i, | i | i
 | ƒ WqQ t# i$ d | IJ‚  qQ XqQ Wd	 „  }
 xd t. | ƒ D]V } t | | ƒ } t | t t f ƒ o+ |
 | | ƒ o |  i0 | | | ƒ q$qÎqÎWd
 S(   sø    succeed iff pyclbr.readmodule_ex(modulename) corresponds
            to the actual module object, module.  Any identifiers in
            ignore are ignored.   If no module is provided, the appropriate
            module is loaded with __import__.s   <silly>c         C   sü   |  i } t | t ƒ o  t | | t ƒ p t Sq® nv t | t	 ƒ p t Sn | i
 d  j	 o1 t | | t ƒ p | i
 |  j	 o t Sq® n t | | t ƒ p t Sn | i } | i d ƒ o+ | i d ƒ o d | i i | f } n | | j S(   Nt   __s   _%s%s(   t   oclasst   __dict__t	   classdictt
   isinstanceR   t   FunctionTypet   namet   StaticMethodTypet   Falset
   MethodTypet   im_selfR    t   ClassMethodTypet   __name__t   objnamet
   startswitht   endswitht   im_class(   R   R   R"   R   R)   (    (    R   t   ismethodC   s    	%	!R"   s   class=%si   R   iþÿÿÿt   _c         C   sL   t  |  t ƒ o |  i | i j Sn t  |  t ƒ o |  i | i j Sn t	 S(   N(
   R    t   itemt	   ClassTypet
   __module__t   moduleR(   R!   t   func_globalsR   R$   (   R/   R2   (    (    R   t
   defined_in†   s
    N(1   R2   R    t
   __import__t
   moduleNamet   globalst   pyclbrt   readmodule_ext   dictR-   t   itemsR"   t   valueR   R   R   t   getattrt   py_itemR    t   Functiont   assert_R!   t   BuiltinFunctionTypeR1   R   R   R0   t   typet   _[1]t	   __bases__t   baseR(   t
   real_basest   supert   pyclbr_basesR   R
   R   t   actualMethodsR   t   keyst   mt   appendt   foundMethodst   methodsR   R4   t   dirR/   R   (   R   R6   R2   R   RM   R>   RF   RH   R:   RE   R4   RI   R"   RK   R<   RC   R/   R-   (    (    R   t   checkModule6   sd     	 '0  "	 c         C   s8   |  i d ƒ |  i d ƒ |  i d ƒ |  i d ƒ d  S(   NR8   t   doctestt   rfc822t   difflib(   R   RP   (   R   (    (    R   t	   test_easy’   s    c         C   s   |  i d ƒ d  S(   Ns   test.pyclbr_input(   R   RP   (   R   (    (    R   t   test_decorators˜   s    c         C   s£   |  i } | d d d ƒ| d d d ƒ| d ƒ | d d d ƒ| d ƒ | d d d ƒ| d ƒ | d d d ƒ| d ƒ | d ƒ | d ƒ | d ƒ d  S(   Nt   randomR   t   Randomt   cgit   logt   mhlibt   urllibt   getproxies_registryt
   open_httpst   getproxies_internetconfigt   picklet   aifct   openfpt   Cookiet	   sre_parset   dumpt   pdbt   pydocs   email.Parsers   test.test_pyclbr(   RW   (   s   log(   R\   R]   R^   (   Ra   (   s   dump(   R   RP   t   cm(   R   Rg   (    (    R   t   test_othersž   s    	





(   R(   R1   R   R   R   R   R    RP   RT   RU   Rh   (    (    (    R   R      s   				\		c           C   s   t  t ƒ d  S(   N(   t   run_unittestR   (    (    (    R   t	   test_main´   s    t   __main__(   t   __doc__t   test.test_supportRi   t   unittestR
   t   typesR0   R!   R%   RA   R8   t   TestCaseRB   t   staticmethodR#   t   classmethodR'   t   commandst	   getstatusR   Rj   R(   (   Rp   R   R'   R#   R0   Rn   Rt   RA   R
   Ri   R%   R!   R8   Rj   (    (    R   t   ?   s   		›	