+
    Bi                         R t ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RI	H
t
HtHtHt  ! R R]P                  4      t ! R R]P                  4      t]R	8X  d   ]P                  ! 4        R# R# )
zsqlite3 CLI tests.N)main)TESTFNunlink)captured_stdoutcaptured_stderrcaptured_stdinforce_not_colorizedc                   h   a  ] tR t^t o RR/R ltR tR t]R 4       tR t	R t
R	 tR
 tR tRtV tR# )CommandLineInterfaceexpect_successTc                  \        4       ;_uu_ 4       p\        4       ;_uu_ 4       pV P                  \        4      ;_uu_ 4       p\	        V4       R R R 4       R R R 4       R R R 4       XP                  4       XP                  4       XP                  P                  3#   + '       g   i     LU; i  + '       g   i     L`; i  + '       g   i     Lk; i)N)r   r   assertRaises
SystemExitcligetvalue	exceptioncode)selfr   argsouterrcms   &$*   1/usr/lib/python3.14/test/test_sqlite3/test_cli.py_do_testCommandLineInterface._do_test   s    j))RI *  
 ||~s||~r||/@/@@@ *)  s:   CB0	BB0	CB-(B0	0C ;CC	c           	         V P                   ! V!  w  r#pV P                  V^ RP                  RV: 2W#.4      4       V P                  VR4       V# )    
Unexpected failure: args= )r   assertEqualjoinr   r   r   r   r   s   &*   r   r   #CommandLineInterface.expect_success   sU    -$q&@4'$BC#MN	Pb!
    c           	         V P                   ! VR R/ w  r#pV P                  V^ RP                  RV: 2W#.4      4       V P                  VR4       V# )r   Fr   r   r   )r   assertNotEqualr!   r    r"   s   &*   r   expect_failure#CommandLineInterface.expect_failure!   sZ    CUC$D! II)CdW'Es&PQ	Sb!
r$   c                    V P                  R 4      pV P                  RV4       V P                  RV4       V P                  RV4       R# )z-hzusage: z [-h] [-v] [filename] [sql]zPython sqlite3 CLINr   assertInr   r   s   & r   test_cli_help"CommandLineInterface.test_cli_help(   s>    !!$'i%3S9*C0r$   c                h    V P                  R 4      pV P                  \        P                  V4       R# )z-vN)r   r+   sqlite3sqlite_versionr,   s   & r   test_cli_version%CommandLineInterface.test_cli_version/   s&    !!$'g,,c2r$   c                N    V P                  R R4      pV P                  RV4       R# ):memory:zselect 1z(1,)Nr*   r,   s   & r   test_cli_execute_sql)CommandLineInterface.test_cli_execute_sql3   s"    !!*j9fc"r$   c                P    V P                  R R4      pRpV P                  W!4       R# )r5   zselect 1; select 2z>ProgrammingError: You can only execute one statement at a timeNr'   r+   )r   stderrr   s   &  r   test_cli_execute_too_much_sql2CommandLineInterface.test_cli_execute_too_much_sql7   s&    $$Z1EFNc"r$   c                N    V P                  R R4      pV P                  RV4       R# )r5   selOperationalError (SQLITE_ERROR)Nr9   )r   r:   s   & r   test_cli_execute_incomplete_sql4CommandLineInterface.test_cli_execute_incomplete_sql<   s#    $$Z77@r$   c                    V P                  \        \        4       V P                  \        R 4      pV P	                  VR4       V P                  \        R4      pV P                  RV4       R# )zcreate table t(t)r   zselect count(t) from tz(0,)N)
addCleanupr   r   r   r    r+   r,   s   & r   test_cli_on_disk_db(CommandLineInterface.test_cli_on_disk_db@   sT    '!!&*=>b!!!&*BCfc"r$    N)__name__
__module____qualname____firstlineno__r   r   r'   r   r-   r2   r6   r;   r@   rD   __static_attributes____classdictcell____classdict__s   @r   r
   r
      sP     AT A 1 13##
A# #r$   r
   c                      a  ] tR t^Ht o RtRtRtRR/R ltR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tRtV tR# )InteractiveSessionz+Connected to a transient in-memory databasezsqlite> z... commandsc                  \        4       ;_uu_ 4       p\        4       ;_uu_ 4       p\        4       ;_uu_ 4       pV P                  \        4      ;_uu_ 4       pV F  pVP                  VR ,           4       K  	  VP                  ^ 4       \        V4       RRR4       RRR4       RRR4       RRR4       XP                  4       pXP                  4       p	V P                  XP                  P                  ^ RV: R V R V	 24       W3#   + '       g   i     L|; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i)r   Nr   )r   r   r   r   r   writeseekr   r   r    r   r   )
r   rQ   r   stdinstdoutr:   r   cmdr   r   s
   &$*       r   run_cliInteractiveSession.run_cliM   s    j))RC$J'  JJqMI *    oooo**A5wbRuE	Gx *)   sQ   ED/	D>D	DD/	%E	DDD,'D/	/D?:EE	c                |   V P                  4       w  rV P                  V P                  V4       V P                  V P                  V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       R# )   NrX   r+   MEMORY_DB_MSGassertEndsWithPS1r    countPS2r   r   r   s   &  r   test_interact InteractiveSession.test_interact_   s    <<>d((#.d((#.C*488,a0488,a0r$   c                H   V P                  RR7      w  rV P                  V P                  V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       R# ).quitrQ   N)rf   r\   rb   s   &  r   test_interact_quit%InteractiveSession.test_interact_quitg   st    <<<4d((#.C*488,a0488,a0r$   c                   V P                  RR7      w  rV P                  V P                  V4       V P                  \        P                  R,           V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       V P                  \        P                  V4       R# ).versionrg   r   N)rk   )
rX   r+   r]   r0   r1   r^   r_   r    r`   ra   rb   s   &  r   test_interact_version(InteractiveSession.test_interact_versionn   s    <<<7d((#.g,,t3S9C*488,a0488,a0g,,c2r$   c                H   V P                  RR7      w  rV P                  V P                  V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       R# )r   rg   N)r    r\   rb   s   &  r   test_interact_empty_source-InteractiveSession.test_interact_empty_sourcew   st    <<<3d((#.C*488,a0488,a0r$   c                   V P                  RR7      w  rV P                  V P                  V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       V P                  RV4       V P                  RV4       R# ).unknown_commandrg   Errorunknown_commandN)rs   r\   rb   s   &  r   "test_interact_dot_commands_unknown5InteractiveSession.test_interact_dot_commands_unknown~   s    <<)?<@d((#.C*488,a0488,a0gs#'-r$   c                H   V P                  R R7      w  rV P                  V P                  V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       R# ).rg   Nr\   rb   s   &  r    test_interact_dot_commands_empty3InteractiveSession.test_interact_dot_commands_empty   st    <<#</d((#.C*488,a0488,a0r$   c                   V P                  RR7      w  rV P                  V P                  V4       V P                  VP	                  \
        P                  R,           4      ^4       V P                  WP                  4       V P                  VP	                  V P                  4      ^4       V P                  VP	                  V P                  4      ^ 4       R# )	.version rg   r   N)r}   z	. version)
rX   r+   r]   r    r`   r0   r1   r^   r_   ra   rb   s   &  r   +test_interact_dot_commands_with_whitespaces>InteractiveSession.test_interact_dot_commands_with_whitespaces   s    <<)C<Dd((#.7#9#9D#@A1EC*488,a0488,a0r$   c                l   V P                  RR7      w  rV P                  V P                  V4       V P                  RV4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       R# )	SELECT 1;rg   (1,)
N)r   r\   rb   s   &  r   test_interact_valid_sql*InteractiveSession.test_interact_valid_sql   s    <<<8d((#.h$C*488,a0488,a0r$   c                H   V P                  RR7      w  rV P                  V P                  V4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^4       R# )SELECT 1rg   N)r   )rX   r+   r]   r^   ra   r    r`   r_   rb   s   &  r   &test_interact_incomplete_multiline_sql9InteractiveSession.test_interact_incomplete_multiline_sql   st    <<<7d((#.C*488,a0488,a0r$   c                   V P                  RR7      w  rV P                  V P                  V4       V P                  V P                  V4       V P                  RV4       V P	                  WP
                  4       V P                  VP                  V P
                  4      ^4       V P                  VP                  V P                  4      ^4       R# )
SELECT 1
;rg   r   N)r   )rX   r+   r]   ra   r^   r_   r    r`   rb   s   &  r   !test_interact_valid_multiline_sql4InteractiveSession.test_interact_valid_multiline_sql   s    <<)9<:d((#.dhh$h$C*488,a0488,a0r$   c                l   V P                  RR7      w  rV P                  V P                  V4       V P                  RV4       V P                  WP                  4       V P                  VP                  V P                  4      ^4       V P                  VP                  V P                  4      ^ 4       R# )sel;rg   r?   N)r   r\   rb   s   &  r   test_interact_invalid_sql,InteractiveSession.test_interact_invalid_sql   s    <<<3d((#.7=C*488,a0488,a0r$   c                $   V P                  \        \        4       V P                  \        RR7      w  rV P	                  \        V4       V P                  WP                  4       V P                  \        RR7      w  rV P	                  RV4       R# )CREATE TABLE t(t);rg   z(0,)
N)r   )zSELECT count(t) FROM t;)rC   r   r   rX   r+   r^   r_   )r   r   r   _s   &   r   test_interact_on_disk_file-InteractiveSession.test_interact_on_disk_file   sh    '<<1H<Ifc"C*f/KLh$r$   rF   N)rG   rH   rI   rJ   r]   r_   ra   rX   rc   rh   rl   rp   rv   rz   r~   r   r   r   r   r   rK   rL   rM   s   @r   rP   rP   H   sa     AM
C
Cb $1131.111111% %r$   rP   __main__)__doc__r0   unittestsqlite3.__main__r   r   test.support.os_helperr   r   test.supportr   r   r   r   TestCaser
   rP   rG   rF   r$   r   <module>r      s^       ( 1 6#8,, 6#rw%** w%t zMMO r$   