ó
¬«Y]c           @   s”   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z e j Z d „  Z	 d e j
 f d „  ƒ  YZ d „  Z e d k r e ƒ  n  d S(	   sA   Test script for the dumbdbm module
   Original by Roger E. Masse
iÿÿÿÿN(   t   test_supportc          C   sG   x@ d d d g D]/ }  y t  j t |  ƒ Wq t k
 r> q Xq Wd  S(   Ns   .dirs   .dats   .bak(   t   ost   unlinkt   _fnamet   OSError(   t   ext(    (    s"   lib/python2.7/test/test_dumbdbm.pyt   _delete_files   s
    t   DumbDBMTestCasec           B   s)  e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6Z d „  Z d „  Z e j e e d ƒ d ƒ e j e e d ƒ d ƒ d „  ƒ ƒ Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j e e d ƒ d  ƒ d! „  ƒ Z d" „  Z d# „  Z RS($   t    t   0s   Python:t   at   Programmingt   bt   thet   ct   wayt   dt   Guidot   ft   intendedt   gc         G   s   t  j j |  | Œ d  S(   N(   t   unittestt   TestCaset   __init__(   t   selft   args(    (    s"   lib/python2.7/test/test_dumbdbm.pyR      s    c         C   sh   t  j t d ƒ } |  j | j ƒ  g  ƒ x" |  j D] } |  j | | | <q2 W|  j | ƒ | j ƒ  d  S(   NR   (   t   dumbdbmt   openR   t   assertEqualt   keyst   _dictt   read_helpert   close(   R   R   t   key(    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_dumbdbm_creation!   s    t   chmods   os.chmod not availablet   umasks   os.umask not availablec         C   sÏ   z2 t  j d ƒ } t j t d d ƒ } | j ƒ  Wd  t  j | ƒ Xd } t  j d k ra d } n  d d  l } t  j t d ƒ } |  j | j	 | j
 ƒ | ƒ t  j t d	 ƒ } |  j | j	 | j
 ƒ | ƒ d  S(
   Ni   R   iŸ  i  t   posixi¶  iÿÿÿÿs   .dats   .dir(   R   R$   R   R   R   R    t   namet   statR   t   S_IMODEt   st_mode(   R   t	   old_umaskR   t   expected_modeR'   t   st(    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_dumbdbm_creation_mode)   s    	c         C   sE   t  j t ƒ } d | d <|  j | d d ƒ | j ƒ  | j ƒ  d  S(   NR   R
   (   R   R   R   R   R    (   R   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_close_twice?   s
    

c         C   sL   |  j  ƒ  t j t d ƒ } d |  j d <| d <|  j | ƒ | j ƒ  d  S(   Nt   wt   indentedR   (   t   init_dbR   R   R   R   R   R    (   R   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_dumbdbm_modificationF   s
    
c         C   s7   |  j  ƒ  t j t d ƒ } |  j | ƒ | j ƒ  d  S(   Nt   r(   R1   R   R   R   R   R    (   R   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_dumbdbm_readM   s    
c         C   s6   |  j  ƒ  t j t ƒ } |  j | ƒ } | j ƒ  d  S(   N(   R1   R   R   R   t   keys_helperR    (   R   R   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_dumbdbm_keysS   s    
c         C   s^   t  j t ƒ } d | d <d | d <| j ƒ  t  j t ƒ } |  j | d d ƒ | j ƒ  d  S(   Nt   hellot   1t   hello2(   R   R   R   R    R   (   R   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_write_write_readY   s    


c         C   sª   t  j t ƒ } d | d <d | d <| j ƒ  t t d ƒ j ƒ  } | j d d ƒ } t t d d ƒ j | ƒ t  j t ƒ } |  j | d d ƒ |  j | d d ƒ d  S(	   NR7   R8   R9   t   2s   .dirs   
s   
t   wb(   R   R   R   R    t   readt   replacet   writeR   (   R   R   t   data(    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_line_endingsc   s    


c         C   sB   |  j  | ƒ } x, |  j D]! } |  j |  j | | | ƒ q Wd  S(   N(   R5   R   R   (   R   R   R   R!   (    (    s"   lib/python2.7/test/test_dumbdbm.pyR   u   s    c         C   sE   t  j t d ƒ } x" |  j D] } |  j | | | <q W| j ƒ  d  S(   NR/   (   R   R   R   R   R    (   R   R   t   k(    (    s"   lib/python2.7/test/test_dumbdbm.pyR1   z   s    c         C   sC   | j  ƒ  } | j ƒ  |  j j  ƒ  } | j ƒ  |  j | | ƒ | S(   N(   R   t   sortR   R   (   R   R   R   t   dkeys(    (    s"   lib/python2.7/test/test_dumbdbm.pyR5   €   s    

c   	      C   s7  d d  l  } i  } xt d ƒ D]} t j t ƒ } x™ t d ƒ D]‹ } | j d ƒ } | j  ƒ  d k  rˆ | | k rÌ | | =| | =qÌ qA | j d ƒ | j d ƒ } | | | <| | | <|  j | | | ƒ qA W| j ƒ  t j t ƒ } | j	 ƒ  } | j
 ƒ  | j	 ƒ  } | j
 ƒ  |  j | | ƒ | j ƒ  q Wd  S(   Niÿÿÿÿi   id   t   abcdefghijklmgš™™™™™É?t   abci'  (   t   randomt   rangeR   R   R   t   choicet	   randrangeR   R    t   itemsRC   (	   R   RG   R   t   dummyR   RB   t   vt   expectedt   got(    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_randomŠ   s,    




c         C   s   t  t d d ƒ  } | j d ƒ Wd  QXt j ƒ  F } |  j t ƒ  t j  t ƒ j ƒ  Wd  QX|  j	 | j
 ƒ  d ƒ Wd  QXd  S(   Ns   .dirR/   s2   str(__import__('sys').stdout.write('Hacked!')), 0
R   (   R   R   R?   R    t   captured_stdoutt   assertRaisest
   ValueErrorR   R    R   t   getvalue(   R   t   streamt   stdout(    (    s"   lib/python2.7/test/test_dumbdbm.pyt	   test_eval¤   s    s   test needs os.chmod()c         C   s'  t  } t j | ƒ zÿ t j j | d ƒ } t j | d ƒ } |  j t | j	 ƒ  ƒ g  ƒ x" |  j
 D] } |  j
 | | | <qc W| j ƒ  t j | d t j ƒ t j | d t j ƒ t j | t j t j Bƒ t j | d ƒ } |  j t | j	 ƒ  ƒ t |  j
 ƒ ƒ | j ƒ  Wd  t j | ƒ Xd  S(   Nt   dbt   ns   .dirs   .datR3   (   R   R   t   mkdirt   patht   joinR   R   R   t   listR   R   R    R#   R'   t   S_IRUSRt   S_IXUSRt   sortedR    t   rmtree(   R   t   dirt   fnameR   R!   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   test_readonly_files¬   s     
%c         C   s   t  ƒ  d  S(   N(   R   (   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   tearDownÀ   s    c         C   s   t  ƒ  d  S(   N(   R   (   R   (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   setUpÃ   s    (   t   __name__t
   __module__R   R   R"   R   t
   skipUnlesst   hasattrR   R-   R.   R2   R4   R6   R:   RA   R   R1   R5   RP   RW   Rd   Re   Rf   (    (    (    s"   lib/python2.7/test/test_dumbdbm.pyR      s2   

		'					
				
		$	c           C   s    z t  j t ƒ Wd  t ƒ  Xd  S(   N(   R    t   run_unittestR   R   (    (    (    s"   lib/python2.7/test/test_dumbdbm.pyt	   test_mainÆ   s    t   __main__(   t   __doc__R   R'   R   R   t   testR    t   TESTFNR   R   R   R   Rl   Rg   (    (    (    s"   lib/python2.7/test/test_dumbdbm.pyt   <module>   s   		²	