mò
­fIc           @   sõ   d  Z  d k Z d k Z d k Z d k Z d k Z d k Z d k l Z d k	 l
 Z
 d e i f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d d „ Z e d j o e d e ƒ n d S(   s{   Test script for the bsddb C module by Roger E. Masse
   Adapted to unittest format and expanded scope by Raymond Hettinger
N(   s   test_support(   s   Sett	   TestBSDDBc           B   sã   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   sƒ   |  i d |  i d d d ƒ|  _ t d d d d d	 d
 d d d d d d ƒ |  _ x* |  i i ƒ  D] \ } } | |  i | <qb Wd  S(   Ni    t   ct	   cachesizei €  t   qt   Guidot   wt   vant   et   Rossumt   rt   inventedt   tt   Pythont   yt    (	   t   selft
   openmethodt   fnamet   ft   dictt   dt	   iteritemst   kt   v(   R   R   R   (    (    t,   /mit/python/lib/python2.4/test/test_bsddb.pyt   setUp   s
    "0 c         C   sc   |  i i ƒ  |  i i ƒ  |  i d  j o d  Sn y t i |  i ƒ Wn t i j
 o n Xd  S(   N(	   R   R   t   synct   closeR   t   Nonet   ost   removet   error(   R   (    (    R   t   tearDown   s    c         C   s;   x4 |  i i ƒ  D]# \ } } |  i |  i | | ƒ q Wd  S(   N(   R   R   R   R   R   t   assertEqualR   (   R   R   R   (    (    R   t   test_getitem   s     c         C   s&   |  i t |  i ƒ t |  i ƒ ƒ d  S(   N(   R   R!   t   lenR   R   (   R   (    (    R   t   test_len#   s    c         C   s`   d |  i d <|  i |  i d d ƒ |  i d |  i i ƒ  j ƒ |  i d |  i i ƒ  j ƒ d  S(   Nt
   discoveredR	   (   R   R   R!   t   assert_t   keyst   values(   R   (    (    R   t   test_change&   s    c         C   s|   |  i d  j o d  Sn |  i i ƒ  |  i d |  i d ƒ |  _ x4 |  i i ƒ  D]# \ } } |  i
 |  i | | ƒ qQ Wd  S(   Ni    R   (   R   R   R   R   R   R   R   R   R   R   R!   (   R   R   R   (    (    R   t   test_close_and_reopen,   s     c         C   s    |  i t | ƒ t | ƒ ƒ d  S(   N(   R   R!   t   Sett   seqn1t   seqn2(   R   R,   R-   (    (    R   t   assertSetEquals6   s    c         C   sÎ   |  i } |  i } |  i | | ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i ƒ  | i ƒ  ƒ |  i | i	 ƒ  | i	 ƒ  ƒ d  S(   N(
   R   R   R   R.   R'   R(   t   itemst   iterkeyst
   itervaluesR   (   R   R   R   (    (    R   t   test_mapping_iteration_methods9   s    		c         C   sÇ   t  |  i d ƒ p d  Sn t |  i ƒ } x= y! | i ƒ  } d | |  i | <Wq- t j
 o Pq- Xq- Wt |  i ƒ } x= y! | i ƒ  } d | |  i | <Wq| t j
 o Pq| Xq| W|  i
 ƒ  d  S(   Nt   __iter__i   s	   modified (   t   hasattrR   R   t   iterR   t   dit   nextt   keyt   StopIterationt   fiR2   (   R   R6   R8   R:   (    (    R   t    test_iter_while_modifying_valuesD   s&        c         C   sÓ   t  |  i d ƒ p d  Sn |  i i ƒ  } xC y' | i ƒ  \ } } d | |  i | <Wq- t	 j
 o Pq- Xq- W|  i i ƒ  } xC y' | i ƒ  \ } } d | |  i | <Wq‚ t	 j
 o Pq‚ Xq‚ W|  i ƒ  d  S(   NR   i   s	   modified (   R4   R   R   R   R   R6   R7   R   R   R9   R:   R2   (   R   R6   R   R:   R   (    (    R   t%   test_iteritems_while_modifying_values]   s&        c         C   sh   |  i i ƒ  g } x6 t d t |  i ƒ ƒ D] } | i |  i i ƒ  ƒ q+ W|  i	 | |  i
 i ƒ  ƒ d  S(   Ni   (   R   R   t   firstR/   t   xrangeR#   t   it   appendR7   R.   R   (   R   R?   R/   (    (    R   t   test_first_next_loopingv   s
     c         C   sh   |  i i ƒ  g } x6 t d t |  i ƒ ƒ D] } | i |  i i ƒ  ƒ q+ W|  i	 | |  i
 i ƒ  ƒ d  S(   Ni   (   R   R   t   lastR/   R>   R#   R?   R@   t   previousR.   R   (   R   R?   R/   (    (    R   t   test_previous_last_looping|   s
     c         C   s-   |  i |  i i d ƒ d |  i d f ƒ d  S(   NR   (   R   R!   R   t   set_locationR   (   R   (    (    R   t   test_set_location‚   s    c         C   sD   x' |  i D] } |  i | |  i j ƒ q
 W|  i d |  i j ƒ d  S(   Ns   not here(   R   R   R   R&   R   (   R   R   (    (    R   t   test_contains…   s    
 c         C   sK   x* |  i D] } |  i |  i i | ƒ ƒ q
 W|  i |  i i d ƒ ƒ d  S(   Ns   not here(   R   R   R   R&   R   t   has_key(   R   R   (    (    R   t   test_has_keyŠ   s    
 c         C   s*   |  i i ƒ  |  i t |  i ƒ d ƒ d  S(   Ni    (   R   R   t   clearR!   R#   (   R   (    (    R   t
   test_clear   s    i    c         C   s8  t  i i ƒ  | o	 d GHn |  i i ƒ  \ } } | o d G| GHn d |  i | <| o	 d GHn t	 |  i d ƒ oN| o	 d GHn |  i i
 ƒ  } | i ƒ  \ } } | o	 d GHn d |  i | <| o	 d	 GHn x2 y | i ƒ  \ } } Wq× t j
 o Pq× Xq× W| o	 d GHn t |  i ƒ } | o	 d GHn xu | om yM | o	 d GHn | i ƒ  } | o	 d GHn d |  i | <| o	 d GHn Wq;t j
 o d  } q;Xq;W| o	 d GHqÄn |  i |  i i ƒ  d |  i j ƒ |  i i ƒ  d } |  i | |  i j ƒ d |  i | <|  i |  i | d ƒ d  S(   Nt   At   Bs0   deadlock.  do not pass go.  do not collect $200.t   CR   t   Dt   Es   please don't deadlockt   Fi   t   F2t   Gt   Ht   Is   deadlocks-r-ust   Jt   Ki    s   be gone with ye deadlocks(   t   syst   stdoutt   flusht   debugR   R   R=   R   R   R4   R   R?   R7   R9   R5   R   R&   R   (   R   R[   R?   R   R   (    (    R   t   test__no_deadlock_first“   sd     	  	 	 	 	   	 	  	 	  #c         C   sÂ   t  |  i d ƒ p d  Sn t |  i i ƒ } |  i i ƒ  } t |  i i ƒ } | i	 ƒ  \ } } t |  i i ƒ } ~ t |  i i ƒ } |  i | | ƒ |  i | | ƒ |  i | | d j ƒ d  S(   NR   i   (   R4   R   R   R#   t   _cursor_refst   nc1R   R?   t   nc2R7   R   R   t   nc3t   nc4R!   R&   (   R   R?   R^   R`   Ra   R   R   R_   (    (    R   t   test_for_cursor_memleakÇ   s    c         C   s‡   |  i i ƒ  \ } } |  i | |  i j ƒ |  i | |  i i ƒ  j ƒ |  i | |  i j ƒ |  i t	 |  i ƒ d t	 |  i ƒ ƒ d  S(   Ni   (
   R   R   t   popitemR   R   R&   R   R(   R!   R#   (   R   R   R   (    (    R   t   test_popitemÜ   s
    c         C   s‹   d } |  i i | ƒ } |  i | |  i | ƒ |  i | |  i j ƒ |  i | |  i i ƒ  j ƒ |  i t	 |  i ƒ d t	 |  i ƒ ƒ d  S(   NR   i   (
   R   R   R   t   popR   R!   R   R&   R(   R#   (   R   R   R   (    (    R   t   test_popã   s    c         C   se   |  i |  i i d ƒ d  ƒ |  i |  i i d d ƒ d ƒ |  i |  i i d d ƒ |  i d ƒ d  S(   Nt   NotHeret   DefaultR   (   R   R!   R   t   getR   R   (   R   (    (    R   t   test_getë   s    c         C   sI   |  i |  i i d d ƒ d ƒ |  i |  i i d d ƒ |  i d ƒ d  S(   Nt   newt   dogR	   t   cat(   R   R!   R   t
   setdefaultR   (   R   (    (    R   t   test_setdefaultð   s    c         C   sv   t  d d d d d d ƒ } |  i i | ƒ |  i i | ƒ x4 |  i i ƒ  D]# \ } } |  i	 |  i | | ƒ qK Wd  S(   NR   t   lifet   ut   ofR?   t   brian(
   R   Rk   R   R   t   updateR   R   R   R   R!   (   R   Rk   R   R   (    (    R   t   test_updateô   s     c         C   sÙ   |  i d t i j	 o d  Sn |  i i ƒ  } | i ƒ  |  i |  i i	 ƒ  d | d ƒ |  i |  i i
 ƒ  d | d ƒ |  i |  i i ƒ  d | d ƒ |  i |  i i ƒ  d | d ƒ |  i t |  i ƒ | ƒ d  S(   Ni    i   iÿÿÿÿiþÿÿÿ(   R   R   t   bsddbt   btopenR   R'   t   sortR!   R   R=   R7   RB   RC   t   list(   R   R'   (    (    R   t   test_keyorderingû   s    
!!!!(   t   __name__t
   __module__R   R    R"   R$   R)   R*   R.   R2   R;   R<   RA   RD   RF   RG   RI   RK   R\   Rb   Rd   Rf   Rj   Ro   Ru   Rz   (    (    (    R   R       s0   		
				
										4						t	   TestBTreec           B   s   t  Z e i Z e i g Z RS(   N(   R{   R|   t   test_supportt   TESTFNR   Rv   Rw   R   (    (    (    R   R}     s   	t   TestBTree_InMemoryc           B   s   t  Z d  Z e i g Z RS(   N(   R{   R|   R   R   Rv   Rw   R   (    (    (    R   R€   
  s   t   TestHashTablec           B   s   t  Z e i Z e i g Z RS(   N(   R{   R|   R~   R   R   Rv   t   hashopenR   (    (    (    R   R     s   	t   TestHashTable_InMemoryc           B   s   t  Z d  Z e i g Z RS(   N(   R{   R|   R   R   Rv   R‚   R   (    (    (    R   Rƒ     s   c         C   s   t  i t t t t ƒ d  S(   N(   R~   t   run_unittestR}   R   R€   Rƒ   (   t   verbose(    (    R   t	   test_main  s    	t   __main__R…   (   t   __doc__R   RX   t   copyRv   t   dbhasht   unittestt   testR~   t   setsR+   t   TestCaseR    R}   R€   R   Rƒ   R   R†   R{   t   True(   R~   R†   R+   R    RŠ   R‹   RX   R}   R   Rv   Rƒ   R‰   R   R€   (    (    R   t   ?   s   				ù