a XC?hK@sPddlZddlZeejdkdGdddejZddZedkrLe dS) N) zBackup API not supportedc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%S)& BackupTestscCs6td}|_|d|dddg|dS)N:memory:zCREATE TABLE foo (key INTEGER) INSERT INTO foo (key) VALUES (?)r)sqliteconnectcxexecute executemanycommit)selfr r8/opt/alt/python39/lib64/python3.9/sqlite3/test/backup.pysetUps zBackupTests.setUpcCs|jdSN)r closerrrrtearDown szBackupTests.tearDowncCs:|d}||ddd||ddddS)Nz SELECT key FROM foo ORDER BY keyrrr )rfetchall assertEqual)rZbckcxresultrrr verify_backupszBackupTests.verify_backupcCs:|t|jdWdn1s,0YdSr assertRaises TypeErrorr backuprrrrtest_bad_target_nones z BackupTests.test_bad_target_nonecCs:|t|jdWdn1s,0YdS)Nzsome_file_name.dbrrrrrtest_bad_target_filenames z$BackupTests.test_bad_target_filenamecCs<|t|j|jWdn1s.0YdSr)r ValueErrorr r!rrrrtest_bad_target_same_connections z+BackupTests.test_bad_target_same_connectioncCsNtd}||tj|j|Wdn1s@0YdSNr)r r rrProgrammingErrorr r!rbckrrr!test_bad_target_closed_connection!s z-BackupTests.test_bad_target_closed_connectioncCsVtd}td}||tj||Wdn1sH0YdSr&)r r rrr'r!)rr)sourcerrr!test_bad_source_closed_connection's   z-BackupTests.test_bad_source_closed_connectioncCs|td}|d|dddg|tj}|j|Wdn1sR0Ytjdkrx| t |j ddS)NrzCREATE TABLE bar (key INTEGER)z INSERT INTO bar (key) VALUES (?)rr )rr-ztarget is in transaction) r r rrrOperationalErrorr r!sqlite_version_inforstr exceptionrr)cmrrrtest_bad_target_in_transaction.s  * z*BackupTests.test_bad_target_in_transactionc Csf|tHtd}|j|dWdn1s:0YWdn1sX0YdS)Nrr)rr r r r r!r(rrrtest_keyword_only_args7s  z"BackupTests.test_keyword_only_argscCsDtd&}|j|||Wdn1s60YdSr&)r r r r!rr(rrr test_simple<s  zBackupTests.test_simplecsgfdd}td,}|jj|d|d||Wdn1sL0Y|td|dtj|dtjdS)Ncs|dSrappendZstatusZ remainingtotaljournalrrprogressDsz+BackupTests.test_progress..progressrrZpagesr=r) r r r r!rrlenZ SQLITE_OKZ SQLITE_DONErr=r)rr;r test_progressAs  (zBackupTests.test_progresscsxgfdd}td*}|jj||d||Wdn1sJ0Y|td|dddS)Ncs|dSrr7r9r;rrr=Rsz?BackupTests.test_progress_all_pages_at_once_1..progressrr=rrr r r r!rrr@rArr;r!test_progress_all_pages_at_once_1Os  (z-BackupTests.test_progress_all_pages_at_once_1cszgfdd}td,}|jj|d|d||Wdn1sL0Y|td|dddS)Ncs|dSrr7r9r;rrr=_sz?BackupTests.test_progress_all_pages_at_once_2..progressrr>rrrDrArr;r!test_progress_all_pages_at_once_2\s  (z-BackupTests.test_progress_all_pages_at_once_2c Cs||tL}td"}|jj|dddWdn1s>0YWdn1s\0Y|t|jddS)NrrZbarr>z$progress argument must be a callable) rr r r r r!rr0r1)rr3r)rrrtest_non_callable_progressis  Nz&BackupTests.test_non_callable_progresscsgfdd}tdN}jj|d|d||d}|dddWdn1sp0Ytd ddddd ddS) Ncs0s"jd|dfj|dS)Nri)r rrr8r9r<rrrr=rs z5BackupTests.test_modifying_progress..progressrrr>z2SELECT key FROM foo WHERE key >= 1000 ORDER BY keyrirr?) r r r r!rrrrr@)rr=r)rrrIrtest_modifying_progressos  2z#BackupTests.test_modifying_progressc Csdd}|tJ}td }|jj||dWdn1sD0YWdn1sb0Y|t|jddS)NcSs tddS)Nnearly out of space) SystemErrorr9rrrr=sz3BackupTests.test_failing_progress..progressrrCrK) rrLr r r r!rr0r1)rr=errr)rrrtest_failing_progresss   Lz!BackupTests.test_failing_progressc Csntd }|jj|ddWdn1s00Ytd }|jj|ddWdn1sj0Y|tjJ}td }|jj|ddWdn1s0YWdn1s0Y|t|jgd|j d|j d|j d d d g|j td*}|jj|d d| |Wdn1s`0YdS) Nrmain)nameZtempz non-existing)zSQL logic errorz#SQL logic error or missing databasezunknown database non-existingz)ATTACH DATABASE ':memory:' AS attached_dbz*CREATE TABLE attached_db.foo (key INTEGER)z,INSERT INTO attached_db.foo (key) VALUES (?)rr Z attached_db) r r r r!rr.ZassertInr0r1rrrrr2rrrtest_database_source_names$ . . L    z%BackupTests.test_database_source_nameN)__name__ __module__ __qualname__rrrr"r#r%r*r,r4r5r6rBrErGrHrJrNrQrrrrrs$    rcCs ttSr)unittestZ makeSuiterrrrrsuitesrV__main__) Zsqlite3r rUZskipIfr/ZTestCaserrVrRrOrrrrs!