;
"Ic               @   sh   d  d l  Z  d  d l Z d  d l Z Gd   d e j  Z d   Z d   Z e d k o e   n d S(   i    Nc             B   s   |  Ee  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 S(   c             C   s   t  j d  |  _ d  S(   Nu   :memory:(   u   sqliteu   connectu   con(   u   self(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   setUp   s    c             C   s   |  j  j   d  S(   N(   u   conu   close(   u   self(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   tearDown    s    c             C   s    |  j  j   } | j d  d  S(   Nu   pragma user_version(   u   conu   cursoru   execute(   u   selfu   cur(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckPragmaUserVersion#   s    c             C   sT   t  j d d t  j } z  |  j j   } | j d  Wd  | j   | j   Xd  S(   Nu   :memory:u   detect_typesu   pragma schema_version(   u   sqliteu   connectu   PARSE_COLNAMESu   conu   cursoru   executeu   close(   u   selfu   conu   cur(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckPragmaSchemaVersion(   s    
c                s   t  j d d d     f d   t d  D } | d j d  x8 t d  D]* } | d j d d	   t d  D  qO Wx- t d  D] } | | j d
 | d  q W  j   d  S(   Nu   :memory:u   cached_statementsi   c                s!   g  } |  ] } |   j    q
 S(    (   u   cursor(   u   .0u   _[1]u   x(   u   con(    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu
   <listcomp>7   s    i    u   create table test(x)i
   u   insert into test(x) values (?)c             S   s   g  } |  ] } | | f q
 S(    (    (   u   .0u   _[1]u   x(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu
   <listcomp>:   s    u    u   select x from test(   u   sqliteu   connectu   rangeu   executeu   executemanyu   rollback(   u   selfu   cursorsu   i(    (   u   conu4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckStatementReset2   s     ( c             C   sc   |  j  j   } | j d  |  j | j d d d  | j d  |  j | j d d d  d  S(   Nu    select 1 as "foo bar [datetime]"i    u   foo baru   select 1 as "foo baz"u   foo baz(   u   conu   cursoru   executeu   failUnlessEqualu   description(   u   selfu   cur(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckColumnNameWithSpacesA   s
    c             C   sS   t  j d d t  j } | j   } | j d  | j   | j   | j   d  S(   Nu   :memory:u   detect_typesu   select 4 union select 5(   u   sqliteu   connectu   PARSE_DECLTYPESu   cursoru   executeu   closeu   fetchone(   u   selfu   conu   cur(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckStatementAvailableI   s    

c             C   sj   t  j d  } g  } xD t d  D]6 } | j   } | j |  | j d t |   q" W| j   d  S(   Nu   :memory:ii   u   select 1 x union select (   u   sqliteu   connectu   rangeu   cursoru   appendu   executeu   stru   close(   u   selfu   conu   cursorsu   iu   cur(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu#   CheckStatementFinalizationOnCloseDbS   s     c             C   s   t  j d k  o d  St  j d  } | j d  | j d  y | j d  Wn t  j k
 o Yn X| j d  y | j   Wn$ t  j k
 o |  j d  Yn Xd  S(	   Ni   i   u   :memory:u3   create table foo(x, unique(x) on conflict rollback)u   insert into foo(x) values (1)u   insert into foo(x) values (2)u1   pysqlite knew nothing about the implicit ROLLBACK(   i   i   i   (   u   sqliteu   sqlite_version_infou   connectu   executeu   DatabaseErroru   commitu   OperationalErroru   fail(   u   selfu   con(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckOnConflictRollbacka   s    c             C   s4   |  j  j d  |  j  j d  |  j  j d  d S(   um   
        pysqlite would crash with older SQLite versions unless
        a workaround is implemented.
        u   create table foo(bar)u   drop table fooN(   u   conu   execute(   u   self(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu-   CheckWorkaroundForBuggySqliteTransferBindingsq   s    c             C   s   |  j  j d  d S(   u   
        pysqlite used to segfault with SQLite versions 3.5.x. These return NULL
        for "no-operation" statements
        u    N(   u   conu   execute(   u   self(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckEmptyStatementz   s    c             C   s   d } t  j d d t  j } | j d  | j d t j j   f  | j |  | j d  | j d  | j d  | j |  d	 S(
   u   
        pysqlite until 2.4.1 did not rebuild the row_cast_map when recompiling
        a statement. This test exhibits the problem.
        u   select * from foou   :memory:u   detect_typesu   create table foo(bar timestamp)u   insert into foo(bar) values (?)u   drop table foou   create table foo(bar integer)u   insert into foo(bar) values (5)N(   u   sqliteu   connectu   PARSE_DECLTYPESu   executeu   datetimeu   now(   u   selfu   SELECTu   con(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckTypeMapUsage   s    c             C   s   d  } y5 |  j j d t t d g   f  j   d } WnQ t j k
 oB } z, | j d } | j	 d  p
 d } n WYd  d  } ~ Xn X| o |  j
 |  n d  S(   Nu"   select 'xxx' || ? || 'yyy' colnamei   u@   should have raised an OperationalError with detailed descriptioni    u9   Could not decode to UTF-8 column 'colname' with text 'xxxu7   OperationalError did not have expected description text(   u   Noneu   conu   executeu   bytesu	   bytearrayu   fetchoneu   sqliteu   OperationalErroru   argsu
   startswithu   fail(   u   selfu   failureu   eu   msg(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckErrorMsgDecodeError   s    
c             C   s   |  j  t t j i  d  d S(   u!   
        See issue 3312.
        N(   u   assertRaisesu	   TypeErroru   sqliteu   register_adapteru   None(   u   self(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckRegisterAdapter   s    c             C   s#   t  j d  } t | d d  d S(   u!   
        See issue 3312.
        u   :memory:u   isolation_levelu   éN(   u   sqliteu   connectu   setattr(   u   selfu   con(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckSetIsolationLevel   s    c             C   s3   Gd   d t   } |  j j d | d  f  d S(   ua   
        The Python 3.0 port of the module didn't cope with values of subclasses of str.
        c             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   MyStr   s   
 u   MyStru   select ?u   abcN(   u   stru   conu   execute(   u   selfu   MyStr(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   CheckStrSubclass   s    N(   u   __name__u
   __module__u   setUpu   tearDownu   CheckPragmaUserVersionu   CheckPragmaSchemaVersionu   CheckStatementResetu   CheckColumnNameWithSpacesu   CheckStatementAvailableu#   CheckStatementFinalizationOnCloseDbu   CheckOnConflictRollbacku-   CheckWorkaroundForBuggySqliteTransferBindingsu   CheckEmptyStatementu   CheckTypeMapUsageu   CheckErrorMsgDecodeErroru   CheckRegisterAdapteru   CheckSetIsolationLevelu   CheckStrSubclass(   u
   __locals__(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   RegressionTests   s    
				
			
									u   RegressionTestsc              C   s"   t  j t d  }  t  j |  f  S(   Nu   Check(   u   unittestu	   makeSuiteu   RegressionTestsu	   TestSuite(   u   regression_suite(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   suite   s    c              C   s    t  j   }  |  j t    d  S(   N(   u   unittestu   TextTestRunneru   runu   suite(   u   runner(    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   test   s    u   __main__(	   u   datetimeu   unittestu   sqlite3u   sqliteu   TestCaseu   RegressionTestsu   suiteu   testu   __name__(    (    (    u4   /mit/python/lib/python3.0/sqlite3/test/regression.pyu   <module>   s   		