mς
­fIc           @   s`   d  k  Z  d  k Z d  k Z d  d  Z e d j o( e e   e e  e e d d n d  S(   Nc         C   sr  t  |  d  p
 t d  |  i d  j p |  i d j p
 t d  | d  j	 o| |  i |  } |  i | d  } |  i | d  i	   } |  i |  } | i d  | i	   } | | j p
 t d  nm |  i   } |  i d  } |  i d  i	   } |  i   } | i d  | i	   } | | j p
 t d  t  | d  p
 t d  |  i d  j	 o! | i |  i j p
 t d  n | i t |  j p
 t d	  | i d  | i   }	 | i	   |	 i	   j p
 t d
  | i   |	 i   j p
 t d
  | i	   | i   }
 } d } x" |
 D] } | d t |  7} q)W| | j p
 t d  d G|  i Gd GHd  S(   Nt   digest_sizes   Must have digest_sizei    s$   digest_size must be None or positivet   strings   Hashes must matchs"   Objects must have digest_size attrs   digest_size must matchs"   digest_size must match actual sizes   Copied objects must matcht    s   %02xs    hexdigest doesn't appear correctt   Modules   seems to comply with PEP 247(   t   hasattrt   modulet   AssertionErrorR    t   Nonet   keyt   newt   obj1t   obj2t   digestt   h1t   obj3t   updatet   h2t   lent   copyt   obj_copyt	   hexdigestt   hd2t   bytet   ordt   __name__(   R   R   R
   R   R   R   R   R   R   R   R   R   (    (    t-   /mit/python/lib/python2.4/test/test_pep247.pyt   check_hash_module   s8    *(%! ## t   __main__R   t   abc(   t   md5t   shat   hmacR   R   R   (   R   R   R   R   (    (    R   t   ?   s
   '

