;
Οβ"Ic               @   sr   d  d l  Z  d  d l Z Gd   d e  j  Z Gd   d e  j  Z d   Z d   Z e d k o e   n d S(	   i    Nc             B   sM   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   c             C   s   d  S(   N(    (   u   self(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   setUp   s    c             C   s   d  S(   N(    (   u   self(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   tearDown   s    c             C   su   t  j d  } y! | j d d  |  j d  Wn> t k
 o2 } z |  j | j d d  WYd  d  } ~ Xn Xd  S(   Nu   :memory:u   Xi*   u   should have raised a TypeErrori    u   parameter must be callable(   u   sqliteu   connectu   create_collationu   failu	   TypeErroru   failUnlessEqualu   args(   u   selfu   conu   e(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckCreateCollationNotCallable"   s    c             C   sa   t  j d  } y! | j d t  |  j d  Wn* t  j k
 o } z WYd  d  } ~ Xn Xd  S(   Nu   :memory:u   collΓΒ€u%   should have raised a ProgrammingError(   u   sqliteu   connectu   create_collationu   cmpu   failu   ProgrammingError(   u   selfu   conu   e(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckCreateCollationNotAscii*   s    c             C   s,  t  j d k  o d  Sd   } t  j d  } | j d |  d } | j |  j   } | d d d	 k p* | d d d
 k p | d d d k o |  j d  n | j d d   y& | j |  j   } |  j d  WnG t  j k
 o8 } z" |  j	 | j
 d j   d  WYd  d  } ~ Xn Xd  S(   Ni   i   i   c             S   s   t  |  |  S(   N(   u   cmp(   u   xu   y(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   mycoll5   s    u   :memory:u   mycolluΙ   
            select x from (
            select 'a' as x
            union
            select 'b' as x
            union
            select 'c' as x
            ) order by x collate mycoll
            i    u   cu   bu   au#   the expected order was not returnedu&   should have raised an OperationalErroru"   no such collation sequence: mycoll(   i   i   i   (   u   sqliteu   version_infou   connectu   create_collationu   executeu   fetchallu   failu   Noneu   OperationalErroru   failUnlessEqualu   argsu   lower(   u   selfu   mycollu   conu   sqlu   resultu   e(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckCollationIsUsed2   s    		?c             C   s   t  j d  } | j d t  | j d d    | j d  j   } | d d d k p | d d d k o |  j d	  n d
 S(   u   
        Register two different collation functions under the same name.
        Verify that the last one is actually used.
        u   :memory:u   mycollc             S   s   t  |  |  S(    (   u   cmp(   u   xu   y(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   <lambda>V   s    ui   
            select x from (select 'a' as x union select 'b' as x) order by x collate mycoll
            i    u   bi   u   au    wrong collation function is usedN(   u   sqliteu   connectu   create_collationu   cmpu   executeu   fetchallu   fail(   u   selfu   conu   result(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckCollationRegisterTwiceO   s    *c             C   s¦   t  j d  } | j d t  | j d d  y | j d  |  j d  WnR t  j k
 oC } z- | j d j	 d  p |  j d  n WYd d } ~ Xn Xd S(	   uu   
        Register a collation, then deregister it. Make sure an error is raised if we try
        to use it.
        u   :memory:u   mycollu?   select 'a' as x union select 'b' as x order by x collate mycollu&   should have raised an OperationalErrori    u   no such collation sequenceu   wrong OperationalError raisedN(
   u   sqliteu   connectu   create_collationu   cmpu   Noneu   executeu   failu   OperationalErroru   argsu
   startswith(   u   selfu   conu   e(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckDeregisterCollation]   s    N(	   u   __name__u
   __module__u   setUpu   tearDownu   CheckCreateCollationNotCallableu   CheckCreateCollationNotAsciiu   CheckCollationIsUsedu   CheckCollationRegisterTwiceu   CheckDeregisterCollation(   u
   __locals__(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CollationTests   s   
						u   CollationTestsc             B   s2   |  Ee  Z d    Z d   Z d   Z d   Z d S(   c                sR   t  j d  } g      f d   } | j | d  | j d  |  j    d S(   uK   
        Test that the progress handler is invoked once it is set.
        u   :memory:c                  s     j  d   d S(   Ni    (   u   appendu   None(    (   u   progress_calls(    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   progresss   s    i   u0   
            create table foo(a, b)
            N(   u   sqliteu   connectu   set_progress_handleru   executeu
   failUnless(   u   selfu   conu   progress(    (   u   progress_callsu/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckProgressHandlerUsedm   s    c                s   t  j d  } g      f d   } | j | d  | j   } | j d  t    } g    | j | d  | j d  t    } |  j | | k  d S(   u=   
        Test that the opcode argument is respected.
        u   :memory:c                  s     j  d   d S(   Ni    (   u   appendu   None(    (   u   progress_calls(    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   progress   s    i   u1   
            create table foo (a, b)
            i   u1   
            create table bar (a, b)
            N(   u   sqliteu   connectu   set_progress_handleru   cursoru   executeu   lenu
   failUnless(   u   selfu   conu   progressu   cursu   first_countu   second_count(    (   u   progress_callsu/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckOpcodeCount}   s    c                s]   t  j d  } g      f d   } | j | d  | j   } |  j t  j | j d  d S(   uW   
        Test that returning a non-zero value stops the operation in progress.
        u   :memory:c                  s     j  d   d S(   Ni   (   u   appendu   None(    (   u   progress_calls(    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   progress   s    i   u   create table bar (a, b)N(   u   sqliteu   connectu   set_progress_handleru   cursoru   assertRaisesu   OperationalErroru   execute(   u   selfu   conu   progressu   curs(    (   u   progress_callsu/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckCancelOperation   s    c             C   sh   t  j d  } d } d   } | j | d  | j d d  | j d  j   |  j | d d  d S(   uc   
        Test that setting the progress handler to None clears the previously set handler.
        u   :memory:i    c              S   s
   d }  d S(   Ni   i    (    (   u   action(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   progressͺ   s    i   u&   select 1 union select 2 union select 3u    progress handler was not clearedN(   u   sqliteu   connectu   set_progress_handleru   Noneu   executeu   fetchallu   failUnlessEqual(   u   selfu   conu   actionu   progress(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   CheckClearHandler€   s    	N(   u   __name__u
   __module__u   CheckProgressHandlerUsedu   CheckOpcodeCountu   CheckCancelOperationu   CheckClearHandler(   u
   __locals__(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   ProgressTestsl   s   
			u   ProgressTestsc              C   s7   t  j t d  }  t  j t d  } t  j |  | f  S(   Nu   Check(   u   unittestu	   makeSuiteu   CollationTestsu   ProgressTestsu	   TestSuite(   u   collation_suiteu   progress_suite(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   suite²   s    c              C   s    t  j   }  |  j t    d  S(   N(   u   unittestu   TextTestRunneru   runu   suite(   u   runner(    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   test·   s    u   __main__(	   u   unittestu   sqlite3u   sqliteu   TestCaseu   CollationTestsu   ProgressTestsu   suiteu   testu   __name__(    (    (    u/   /mit/python/lib/python3.0/sqlite3/test/hooks.pyu   <module>   s   QF		