ó
n®¸Qc           @   sû   d  d l  Z  d  d l Z d  d l Z e j d d k  rp y d  d l Z e Z Wn e k
 rl d  d l Z n Xn d  d l Z d  d l Z d  d l m	 Z	 m
 Z
 m Z m Z m Z m Z d e j f d „  ƒ  YZ d „  Z e d k r÷ e j d	 d
 ƒ n  d S(   iÿÿÿÿNi    i   (   t   dbt   dbtablest   test_supportt   verboset   get_new_environment_patht   get_new_database_patht   TableDBTestCasec           B   sh   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s   test-table.dbc         C   su   d d  l  } | j d d k rA d d l m } | t ƒ |  _ n  t ƒ  |  _ t j	 d d d |  j d d	 ƒ |  _
 d  S(
   Niÿÿÿÿi    i   (   t   do_proxy_db_py3kt   filenames   tabletest.dbt   dbhomet   createi   (   t   syst   version_infot   test_allR   t   Falset   _flag_proxy_db_py3kR   t   testHomeDirR   t
   bsdTableDBt   tdb(   t   selfR   R   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   setUp+   s    	c         C   s`   |  j  j ƒ  d d  l } | j d d k rL d d l m } | |  j ƒ n  t j |  j	 ƒ d  S(   Niÿÿÿÿi    i   (   R   (
   R   t   closeR   R   R   R   R   R   t   rmtreeR   (   R   R   R   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   tearDown5   s    c         C   s‚  d } d } y |  j  j | ƒ Wn t j k
 r6 n X|  j  j | | g ƒ d d  l } | j d d k  r• |  j  j | i t j	 d d ƒ | 6ƒ n/ |  j  j | i t j	 d d ƒ j
 d ƒ | 6ƒ t rÚ |  j  j ƒ  n  |  j  j | | g d	 i d  | 6ƒ} d d  l } | j d d k  r8t j | d | ƒ } n  t j t | d | d ƒ ƒ } |  j | d
 k ƒ |  j | d k  ƒ d  S(   Nt   test01s   cool numbersiÿÿÿÿi    i   gn†ðù!	@i   s	   iso8859-1t
   conditionsgSã¥›Ä 	@g‰A`åÐ"	@(   R   t   DropR   t   TableDBErrort   CreateTableR   R   t   Insertt   picklet   dumpst   decodeR   t	   _db_printt   Selectt   Nonet   loadst   bytest
   assertTrue(   R   t   tabnamet   colnameR   t   valuest   colval(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR   =   s,    )	 c   	      C   s¯  d } d } d } d } d d  l  } | j d d k  r¬ i t j d d	 ƒ | 6d
 | 6d | 6i t j d d	 ƒ | 6d
 | 6d | 6i t j d d	 ƒ | 6d | 6d | 6g } n i t j d d	 ƒ j d ƒ | 6d
 | 6d | 6i t j d d	 ƒ j d ƒ | 6d
 | 6d | 6i t j d d	 ƒ j d ƒ | 6d | 6d | 6g } y |  j j | ƒ Wn t j k
 rcn X|  j j	 | | | | g ƒ x! | D] } |  j j
 | | ƒ q‡Wd d  l  } | j d d k  rî|  j j | | g d i d „  | 6ƒ} n( |  j j | | g d i d „  | 6ƒ} |  j t | ƒ d ƒ | d d d k r[|  j | d	 d d ƒ nP | d d d k rŠ|  j | d	 d d ƒ n! t rŸd | f GHn  t d ƒ ‚ d  S(   Nt   test02s   coolness factors   but can it fly?t   Speciesiÿÿÿÿi    i   i   i   t   not   Penguint   Turkeyi	   t   yess   SR-71A Blackbirds	   iso8859-1R   c         S   s   t  j |  ƒ d k S(   Ni   (   R   R$   (   t   x(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   <lambda>}   s    c         S   s   t  j t |  d ƒ ƒ d k S(   Ns	   iso8859-1i   (   R   R$   R%   (   R1   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR2   €   s    i   s
   values= %rs   Wrong values returned!(   R   R   R   R   R    R   R   R   R   R   R   R"   t   assertEqualt   lenR   t   RuntimeError(	   R   R'   t   col0t   col1t   col2R   t   testinfot   rowR)   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR+   [   sH    $$-c         C   s  d } y |  j  j | ƒ Wn t j k
 r0 n Xt rL d GH|  j  j ƒ  n  |  j  j | d d d d d g ƒ t r‰ d GH|  j  j ƒ  n  |  j  j | ƒ t r´ d	 GH|  j  j ƒ  n  |  j  j | d d d d d g ƒ yY |  j  j | i d
 d 6t j	 i d d 6d d 6d g d ƒ d 6d d 6ƒ |  j
 d ƒ Wn t j k
 rEn Xy1 |  j  j | g  d i d d 6ƒ|  j
 d ƒ Wn t j k
 rn X|  j  j | i d d 6d d 6d d 6d d 6ƒ |  j  j | i d d 6d d 6d d 6d d 6d d 6ƒ |  j  j | i d d 6d d 6d d 6d d 6d  d 6ƒ t r?|  j  j ƒ  n  |  j  j | d d d g d i t j d! ƒ j d 6t j d" ƒ j d 6ƒ} |  j t | ƒ d# ƒ |  j  j | d i t j d ƒ d 6ƒ|  j  j | d d d g d i t j d$ ƒ d 6ƒ} |  j t | ƒ d ƒ |  j | d% d d  ƒ |  j  j | d g d i d& „  d 6ƒ} |  j t | ƒ d ƒ |  j | d% d d ƒ d  S('   Nt   test03s   ...before CreateTable...t   at   bt   ct   dt   es   ...after CreateTable...s   ...after Drop...t    i   i   i   i   t   fooi   t   Zerot   fs   Expected an exceptionR   t   123t   42t   badt   meeps   Fuzzy wuzzy was a beart   581750t   goodt   blat   blacks   fuzzy was heret   800000s   Fuzzy wuzzy is a beart   wuzzys   ^[0-9]+$i   t   Fuzzyi    c         S   s
   |  d k S(   NRH   (    (   R>   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR2   Ó   s    (   R   R   R   R   R   R!   R   R   R   R   t   failR"   t   ret   compilet   searcht   matchR3   R4   t   Deletet	   ExactCondt
   PrefixCondR#   (   R   R'   R)   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR;      s~    ""
' 


&	c         C   sì  d } y |  j  j | ƒ Wn t j k
 r0 n X|  j  j | d d d d d g ƒ yY |  j  j | i d d 6t j i d d	 6d
 d 6d g d ƒ d 6d d 6ƒ |  j d ƒ Wn t j k
 rÂ n X|  j  j | i d d 6d d 6d d 6d d 6d d 6ƒ |  j  j | i d d 6d d 6d d 6d d 6d d 6ƒ |  j  j | i d d 6d d 6d d 6d d 6d d 6ƒ t	 r{|  j  j
 ƒ  n  |  j  j | d d d g d  i t j d ƒ d 6t j d ƒ d 6t j d! ƒ d 6ƒ} |  j t | ƒ d" | ƒ d  S(#   Nt   test04_MultiCondSelectR<   R=   R>   R?   R@   RA   i   i   i   i   RB   i   RC   RD   s   Expected an exceptiont   At   Bt   Ct   Dt   Es   -As   -Bs   -Cs   -Ds   -Es   A-s   B-s   C-s   D-s   E-R   t   -i    (   R   R   R   R   R   R   R   R   RP   R   R!   R"   RV   RW   R3   R4   (   R   R'   R)   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyRX   Ø   s6    "
'+++c         C   sâ   d } |  j  j | d d d d d g ƒ y9 |  j  j | i d d 6d d 6d d	 6ƒ |  j d
 ƒ Wn n X|  j  j | d d d	 g ƒ |  j  j | i d d 6d d 6d d	 6ƒ |  j  j | i d d 6d d 6d d	 6d d 6ƒ d  S(   Nt   test_CreateOrExtendt   namet   tastet   fillings   alcohol contentt   pricet   crapR-   s   is it Guinness?s.   Insert should've failed due to bad column namet   greatR0   t   Guinness(   R   t   CreateOrExtendTableR   RP   (   R   R'   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR_      s$    	
c         C   sƒ  d } |  j  j | d d d d d d g ƒ |  j  j | i d d 6d	 d 6d
 d 6ƒ |  j  j | i d d 6d d 6d
 d 6d d 6ƒ |  j  j | i d d 6d d 6d
 d 6d d 6ƒ |  j  j | d d g d i t j d ƒ d 6ƒ} |  j t | ƒ d | ƒ |  j | d d | d d | ƒ |  j | d d | d d | ƒ |  j  j | d d g d i t j	 d ƒ d 6ƒ} |  j t | ƒ d | ƒ |  j | d d d | ƒ |  j | d d d | ƒ |  j  j | d  i t j ƒ  d 6t j	 d ƒ d 6t j d ƒ d 6t j d ƒ d 6t j d ƒ d 6d „  d 6ƒ } |  j t | ƒ d | ƒ |  j | d d d | ƒ |  j | d d d | ƒ d  S(   Nt   test_CondObjsR<   R=   R>   R?   R@   t   ps   the letter As   the letter Bs   is for cookies   is for aardvarks   the letter Es
   is for dogs   is for PythonR   s   the li   i    i   s
   %aardvark%s   %letter%t   iss   is forc         S   s   |  S(   N(    (   t   s(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR2   =  s    (   R   R   R   R"   R   RW   R3   R4   t   assertNotEqualt   LikeCondR#   t   CondRV   (   R   R'   R)   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyRh     sF    %	##	c         C   sÙ   d } |  j  j | d d d g ƒ |  j  j | i d d 6d d 6ƒ |  j  j | i d d 6d d 6d	 d 6ƒ |  j  j | d
 i t j d ƒ d 6ƒ|  j  j | d g d
 i t j d ƒ d 6ƒ} |  j t | ƒ d ƒ d  S(   Nt   test_DeleteR1   t   yt   zt   X1t   Y1t   X2t   Y2t   Z2R   t   Xi    (	   R   R   R   RU   R   RW   R"   R3   R4   (   R   R'   R)   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyRo   B  s    !(&c         C   s  d } |  j  j | d d d g ƒ |  j  j | i d d 6d d 6d d 6ƒ |  j  j | i d d 6d	 d 6ƒ |  j  j | i d
 d 6d d 6ƒ d „  } d „  } d „  } |  j  j | d i t j d ƒ d 6d i | d 6ƒ|  j  j | d i t j d ƒ d 6d i | d 6ƒ|  j  j | d i t j d ƒ d 6d i | d 6ƒy7 |  j  j | d i t j d ƒ d 6d i d d 6ƒWn t k
 rŠn
 Xt d ‚ |  j  j	 | d  d i t j d
 ƒ d 6ƒ} |  j t | ƒ d | ƒ |  j | d d d  | ƒ |  j | d d d  | ƒ |  j  j	 | d  d i t j d ƒ d 6ƒ} |  j t | ƒ d | ƒ |  j | d d d | ƒ |  j | d d d | ƒ |  j  j	 | d  d i t j d ƒ d 6ƒ} |  j t | ƒ d | ƒ |  j | d d d | ƒ |  j | d d d | ƒ d  S(   Nt   test_Modifyt   Namet   Typet   Accesss   Index to MP3 files.doct   Wordt   8s	   Nifty.MP3t   1t   Unknownt   0c         S   s   |  d  k r d S|  S(   Nt   MP3(   R#   (   t   type(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   set_type[  s    c         S   s   t  t |  ƒ d ƒ S(   Ni   (   t   strt   int(   t   count(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   increment_access`  s    c         S   s   d  S(   N(   R#   (   t   value(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   remove_valuec  s    R   t   mappingss   %MP3%t   %s   What is your quest?s.   why was TypeError not raised for bad callable?i   i    R   t   2s   %doc%t   9(   R   R   R   t   ModifyR   RV   Rm   t	   TypeErrorR5   R"   R#   R3   R4   (   R   R'   Rƒ   R‡   R‰   R)   (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyRx   R  sT    !!									"(   t   __name__t
   __module__t   db_nameR   R   R   R+   R;   RX   R_   Rh   Ro   Rx   (    (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyR   (   s   	
			2	K	(		*	c          C   s&   t  j ƒ  }  |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   (   t   suite(    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt
   test_suite’  s    t   __main__t   defaultTestR˜   (   t   osRQ   R   R   t   cPickleR   t   ImportErrorR“   R   R    R   R   R   R   R   t   TestCaseR   R˜   R   t   main(    (    (    s.   /sys/lib/python2.7/bsddb/test/test_dbtables.pyt   <module>   s   $
.ÿ k	