
    4hh                     z    S SK rS SKrSSKJr   " S S\R
                  5      r\S:X  a  \R                  " 5         gg)    N   )memory_databasec                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)BackupTests   c                     [         R                  " S5      =ol        UR                  S5        UR	                  SSS/5        UR                  5         g )N:memory:zCREATE TABLE foo (key INTEGER) INSERT INTO foo (key) VALUES (?)      )sqliteconnectcxexecuteexecutemanycommit)selfr   s     F/opt/python-3.13.8/usr/lib/python3.13/test/test_sqlite3/test_backup.pysetUpBackupTests.setUp   s>    ~~j11W


34
9D$<H
		    c                 8    U R                   R                  5         g N)r   closer   s    r   tearDownBackupTests.tearDown   s    r   c                     UR                  S5      R                  5       nU R                  US   S   S5        U R                  US   S   S5        g )Nz SELECT key FROM foo ORDER BY keyr   r   r   r   )r   fetchallassertEqual)r   bckcxresults      r   verify_backupBackupTests.verify_backup   sJ    ABKKM1q)1q)r   c                 *   U R                  [        5         U R                  R                  S 5        S S S 5        U R                  [        5         U R                  R                  5         S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = fr   assertRaises	TypeErrorr   backupr   s    r   test_bad_targetBackupTests.test_bad_target   sY    y)GGNN4  *y)GGNN *) *)))s   A3B3
B
Bc                     U R                  [        5         U R                  R                  S5        S S S 5        g ! , (       d  f       g = f)Nzsome_file_name.dbr(   r   s    r   test_bad_target_filename$BackupTests.test_bad_target_filename   s-    y)GGNN./ *))s	   ;
A	c                     U R                  [        5         U R                  R                  U R                  5        S S S 5        g ! , (       d  f       g = fr   )r)   
ValueErrorr   r+   r   s    r   test_bad_target_same_connection+BackupTests.test_bad_target_same_connection    s0    z*GGNN477# +**s   &A
Ac                    [        5        nUR                  5         U R                  [        R                  5         U R
                  R                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr   )r   r   r)   r   ProgrammingErrorr   r+   r   bcks     r   !test_bad_target_closed_connection-BackupTests.test_bad_target_closed_connection$   sT    #IIK""6#:#:;s# < ;; s"   0A9A(A9(
A6	2A99
Bc                 ,   [        5        n[        R                  " S5      nUR                  5         U R	                  [        R
                  5         UR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr	   )r   r   r   r   r)   r6   r+   )r   r8   sources      r   !test_bad_source_closed_connection-BackupTests.test_bad_source_closed_connection*   s`    #^^J/FLLN""6#:#:;c" <  <; s$   ABA4#B4
B	>B
Bc                 >   [        5        nUR                  S5        UR                  SSS/5        U R                  [        R
                  5       nU R                  R                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzCREATE TABLE bar (key INTEGER)z INSERT INTO bar (key) VALUES (?)r   r   )r   r   r   r)   r   OperationalErrorr   r+   r   r8   cms      r   test_bad_target_in_transaction*BackupTests.test_bad_target_in_transaction1   so    #KK89OO>tM""6#:#:;rs# <  <; s$   ABA=,B=
B	B
Bc                     U R                  [        5         [        5        nU R                  R	                  US5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   )r)   r*   r   r   r+   r7   s     r   test_keyword_only_args"BackupTests.test_keyword_only_args8   sG    y) "csA& # *)"" *)s!   A AA 
A	A  
A.c                     [        5        nU R                  R                  U5        U R                  U5        S S S 5        g ! , (       d  f       g = fr   )r   r   r+   r%   r7   s     r   test_simpleBackupTests.test_simple=   s4    #GGNN3s# s   -A
Ac                 x  ^ / mU4S jn[        5        nU R                  R                  USUS9  U R                  U5        S S S 5        U R	                  [        T5      S5        U R	                  TS   [        R                  5        U R	                  TS   [        R                  5        g ! , (       d  f       Np= f)Nc                 (   > TR                  U 5        g r   appendstatus	remainingtotaljournals      r   progress+BackupTests.test_progress.<locals>.progressE   s    NN6"r   r   pagesrT      r   )	r   r   r+   r%   r"   lenr   	SQLITE_OKSQLITE_DONEr   rT   r8   rS   s      @r   test_progressBackupTests.test_progressB   s    	# #GGNN3a(N;s#  	Wq)V%5%56V%7%78 s   -B++
B9c                   ^ / mU4S jn[        5        nU R                  R                  X!S9  U R                  U5        S S S 5        U R	                  [        T5      S5        U R	                  TS   S5        g ! , (       d  f       N?= f)Nc                 (   > TR                  U5        g r   rM   rO   s      r   rT   ?BackupTests.test_progress_all_pages_at_once_1.<locals>.progressS       NN9%r   rT   r   r   r   r   r+   r%   r"   rY   r\   s      @r   !test_progress_all_pages_at_once_1-BackupTests.test_progress_all_pages_at_once_1P   so    	& #GGNN3N2s#  	Wq)Q' s   +A88
Bc                   ^ / mU4S jn[        5        nU R                  R                  USUS9  U R                  U5        S S S 5        U R	                  [        T5      S5        U R	                  TS   S5        g ! , (       d  f       N?= f)Nc                 (   > TR                  U5        g r   rM   rO   s      r   rT   ?BackupTests.test_progress_all_pages_at_once_2.<locals>.progress`   rb   r   rV   r   r   rd   r\   s      @r   !test_progress_all_pages_at_once_2-BackupTests.test_progress_all_pages_at_once_2]   ss    	& #GGNN3b8N<s#  	Wq)Q' s   -A::
Bc                 *   U R                  [        5       n[        5        nU R                  R	                  USSS9  S S S 5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N<= f! , (       d  f       NE= f)Nr   barrV   z$progress argument must be a callable)r)   r*   r   r   r+   r"   str	exception)r   rB   r8   s      r   test_non_callable_progress&BackupTests.test_non_callable_progressj   sh    y)R "cs!e< # * 	R\\*,RS #" *)s!   BA3B3
B	=B
Bc                   ^ ^ / mUU 4S jn[        5        nT R                  R                  USUS9  T R                  U5        UR	                  S5      R                  5       nT R                  US   S   S5        S S S 5        T R                  [        T5      S5        T R                  TS   S5        T R                  TS   S5        T R                  TS   S5        g ! , (       d  f       Ni= f)	Nc                    > T(       d:  TR                   R                  SUS-   45        TR                   R                  5         TR                  U5        g )Nr
   i  )r   r   r   rN   )rP   rQ   rR   rS   r   s      r   rT   5BackupTests.test_modifying_progress.<locals>.progresss   s:     BYt^DUV NN9%r   r   rV   z2SELECT key FROM foo WHERE key >= 1000 ORDER BY keyr   i  r   rX   )r   r   r+   r%   r   r!   r"   rY   )r   rT   r8   r$   rS   s   `   @r   test_modifying_progress#BackupTests.test_modifying_progressp   s    	& #GGNN3a(N;s#[[ "1 22:(*  VAYq\40  	Wq)Q'Q'Q' s   A$C
C+c                 ,   S nU R                  [        5       n[        5        nU R                  R	                  X1S9  S S S 5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N<= f! , (       d  f       NE= f)Nc                     [        S5      e)Nnearly out of space)SystemError)rP   rQ   rR   s      r   rT   3BackupTests.test_failing_progress.<locals>.progress   s    344r   rc   rz   )r)   r{   r   r   r+   r"   ro   rp   )r   rT   errr8   s       r   test_failing_progress!BackupTests.test_failing_progress   sk    	5 {+s "cs6 # , 	S]]+-BC #" ,+s!   BA4B4
B	>B
Bc                    [        5        nU R                  R                  USS9  S S S 5        [        5        nU R                  R                  USS9  S S S 5        U R                  [        R
                  5       n[        5        nU R                  R                  USS9  S S S 5        S S S 5        U R                  S[        WR                  5      5        U R                  R                  S5        U R                  R                  S5        U R                  R                  SS	S
/5        U R                  R                  5         [        5        nU R                  R                  USS9  U R                  U5        S S S 5        g ! , (       d  f       GNc= f! , (       d  f       GNH= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nmain)nametempznon-existingzunknown databasez)ATTACH DATABASE ':memory:' AS attached_dbz*CREATE TABLE attached_db.foo (key INTEGER)z,INSERT INTO attached_db.foo (key) VALUES (?)r   r   attached_db)r   r   r+   r)   r   r@   assertInro   rp   r   r   r   r%   rA   s      r   test_database_source_name%BackupTests.test_database_source_name   sA   #GGNN3VN, #GGNN3VN, v6672 "cs8 # 8 	(#bll*;<CDDEJTSWLY#GGNN3]N3s#   #" 87 sF   FF:F8F& F8,G

F
F#&
F5	0F88
G

G)r   N)__name__
__module____qualname____firstlineno__r   r   r%   r,   r/   r3   r9   r=   rC   rF   rI   r]   re   rk   rq   rv   r~   r   __static_attributes__ r   r   r   r      s^    *
0$$#$'
$
9((T(.D$r   r   __main__)	sqlite3r   unittestutilr   TestCaser   r   r   r   r   r   <module>r      s;      !Y$(## Y$x zMMO r   