o =?h@sBddlZddlZGdddejZddZedkredSdS)Nc@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 (?))sqliteconnectcxexecute executemanycommit)selfr r:/opt/alt/python310/lib64/python3.10/sqlite3/test/backup.pysetUps  zBackupTests.setUpcCs|jdSN)r closerrrrtearDown zBackupTests.tearDowncCs:|d}||ddd||ddddS)Nz SELECT key FROM foo ORDER BY keyrrr)r fetchall assertEqual)rZbckcxresultrrr verify_backupszBackupTests.verify_backupcCsp|t|jdWdn1swY|t|jWddS1s1wYdSr assertRaises TypeErrorr backuprrrrtest_bad_targets   "zBackupTests.test_bad_targetcCs<|t|jdWddS1swYdS)Nzsome_file_name.dbrrrrrtest_bad_target_filenames "z$BackupTests.test_bad_target_filenamecCs>|t|j|jWddS1swYdSr)r ValueErrorr r rrrrtest_bad_target_same_connections "z+BackupTests.test_bad_target_same_connectioncCsPtd}||tj|j|WddS1s!wYdSNr)r r rrProgrammingErrorr r rbckrrr!test_bad_target_closed_connection"s "z-BackupTests.test_bad_target_closed_connectioncCsXtd}td}||tj||WddS1s%wYdSr%)r r rrr&r )rr(sourcerrr!test_bad_source_closed_connection(s   "z-BackupTests.test_bad_source_closed_connectioncCstd}|d|dddg|tj}|j|Wdn1s)wYtjdkr>| t |j ddSdS)NrzCREATE TABLE bar (key INTEGER)z INSERT INTO bar (key) VALUES (?)rr)rr,ztarget is in transaction) r r r r rOperationalErrorr r Zsqlite_version_inforstr exceptionrr(cmrrrtest_bad_target_in_transaction/s   z*BackupTests.test_bad_target_in_transactionc Csx|t-td}|j|dWdn1swYWddSWddS1s5wYdS)Nrr)rrr r r r r'rrrtest_keyword_only_args8s  "z"BackupTests.test_keyword_only_argscCsFtd}|j|||WddS1swYdSr%)r r r r rr'rrr test_simple=s   "zBackupTests.test_simplecsgfdd}td}|jj|d|d||Wdn1s&wY|td|dtj|dtjdS)Ncs|dSrappendZstatusZ remainingtotaljournalrrprogressErz+BackupTests.test_progress..progressrrZpagesr;r) r r r r rrlenZ SQLITE_OKZ SQLITE_DONErr;r(rr9r test_progressBs   zBackupTests.test_progresscsxgfdd}td}|jj||d||Wdn1s%wY|td|dddS)Nc|dSrr5r7r9rrr;Srz?BackupTests.test_progress_all_pages_at_once_1..progressrr;rrr r r r rrr>r?rr9r!test_progress_all_pages_at_once_1Ps   z-BackupTests.test_progress_all_pages_at_once_1cszgfdd}td}|jj|d|d||Wdn1s&wY|td|dddS)NcrArr5r7r9rrr;`rz?BackupTests.test_progress_all_pages_at_once_2..progressrr<rrrCr?rr9r!test_progress_all_pages_at_once_2]s   z-BackupTests.test_progress_all_pages_at_once_2c Cs||t&}td}|jj|dddWdn1swYWdn1s.wY|t|jddS)NrrZbarr<z$progress argument must be a callable) rrr r r r rr.r/)rr1r(rrrtest_non_callable_progressjs  z&BackupTests.test_non_callable_progresscsgfdd}td'}jj|d|d||d}|dddWdn1s8wYtd ddddd ddS) Ncs0sjd|dfj|dS)Nri)r r rr6r7r:rrrr;ss z5BackupTests.test_modifying_progress..progressrrr<z2SELECT key FROM foo WHERE key >= 1000 ORDER BY keyrirr=) r r r r rr rrr>)rr;r(rrrHrtest_modifying_progressps   z#BackupTests.test_modifying_progressc Csdd}|t%}td}|jj||dWdn1s"wYWdn1s1wY|t|jddS)NcSstd)Nnearly out of space) SystemErrorr7rrrr;sz3BackupTests.test_failing_progress..progressrrBrJ) rrKr r r r rr.r/)rr;errr(rrrtest_failing_progresss  z!BackupTests.test_failing_progressc Csjtd}|jj|ddWdn1swYtd}|jj|ddWdn1s5wY|tj%}td}|jj|ddWdn1sYwYWdn1shwY|dt|j|j d|j d|j d d d g|j td}|jj|d d| |WddS1swYdS) Nrmain)nameZtempz non-existingzunknown databasez)ATTACH DATABASE ':memory:' AS attached_dbz*CREATE TABLE attached_db.foo (key INTEGER)z,INSERT INTO attached_db.foo (key) VALUES (?)rrZ attached_db) r r r r rr-ZassertInr.r/r r rrr0rrrtest_database_source_names*        "z%BackupTests.test_database_source_nameN)__name__ __module__ __qualname__rrrr!r"r$r)r+r2r3r4r@rDrFrGrIrMrPrrrrrs&    rcCsttSr)unittestZ TestLoaderZloadTestsFromTestCaserrrrrsuiterrU__main__)Zsqlite3r rTZTestCaserrUrQrNrrrrs