Changeset 391 for python/trunk/Lib/sqlite3/test/dbapi.py
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Lib/sqlite3/test/dbapi.py
r2 r391 2 2 # pysqlite2/test/dbapi.py: tests for DB-API compliance 3 3 # 4 # Copyright (C) 2004-20 07Gerhard Häring <gh@ghaering.de>4 # Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de> 5 5 # 6 6 # This file is part of pysqlite. … … 24 24 import unittest 25 25 import sys 26 import threading27 26 import sqlite3 as sqlite 27 try: 28 import threading 29 except ImportError: 30 threading = None 28 31 29 32 class ModuleTests(unittest.TestCase): … … 42 45 43 46 def CheckWarning(self): 44 self.assert _(issubclass(sqlite.Warning, StandardError),45 "Warning is not a subclass of StandardError")47 self.assertTrue(issubclass(sqlite.Warning, StandardError), 48 "Warning is not a subclass of StandardError") 46 49 47 50 def CheckError(self): 48 self. failUnless(issubclass(sqlite.Error, StandardError),51 self.assertTrue(issubclass(sqlite.Error, StandardError), 49 52 "Error is not a subclass of StandardError") 50 53 51 54 def CheckInterfaceError(self): 52 self. failUnless(issubclass(sqlite.InterfaceError, sqlite.Error),55 self.assertTrue(issubclass(sqlite.InterfaceError, sqlite.Error), 53 56 "InterfaceError is not a subclass of Error") 54 57 55 58 def CheckDatabaseError(self): 56 self. failUnless(issubclass(sqlite.DatabaseError, sqlite.Error),59 self.assertTrue(issubclass(sqlite.DatabaseError, sqlite.Error), 57 60 "DatabaseError is not a subclass of Error") 58 61 59 62 def CheckDataError(self): 60 self. failUnless(issubclass(sqlite.DataError, sqlite.DatabaseError),63 self.assertTrue(issubclass(sqlite.DataError, sqlite.DatabaseError), 61 64 "DataError is not a subclass of DatabaseError") 62 65 63 66 def CheckOperationalError(self): 64 self. failUnless(issubclass(sqlite.OperationalError, sqlite.DatabaseError),67 self.assertTrue(issubclass(sqlite.OperationalError, sqlite.DatabaseError), 65 68 "OperationalError is not a subclass of DatabaseError") 66 69 67 70 def CheckIntegrityError(self): 68 self. failUnless(issubclass(sqlite.IntegrityError, sqlite.DatabaseError),71 self.assertTrue(issubclass(sqlite.IntegrityError, sqlite.DatabaseError), 69 72 "IntegrityError is not a subclass of DatabaseError") 70 73 71 74 def CheckInternalError(self): 72 self. failUnless(issubclass(sqlite.InternalError, sqlite.DatabaseError),75 self.assertTrue(issubclass(sqlite.InternalError, sqlite.DatabaseError), 73 76 "InternalError is not a subclass of DatabaseError") 74 77 75 78 def CheckProgrammingError(self): 76 self. failUnless(issubclass(sqlite.ProgrammingError, sqlite.DatabaseError),79 self.assertTrue(issubclass(sqlite.ProgrammingError, sqlite.DatabaseError), 77 80 "ProgrammingError is not a subclass of DatabaseError") 78 81 79 82 def CheckNotSupportedError(self): 80 self. failUnless(issubclass(sqlite.NotSupportedError,83 self.assertTrue(issubclass(sqlite.NotSupportedError, 81 84 sqlite.DatabaseError), 82 85 "NotSupportedError is not a subclass of DatabaseError") … … 128 131 def CheckExceptions(self): 129 132 # Optional DB-API extension. 130 self. failUnlessEqual(self.cx.Warning, sqlite.Warning)131 self. failUnlessEqual(self.cx.Error, sqlite.Error)132 self. failUnlessEqual(self.cx.InterfaceError, sqlite.InterfaceError)133 self. failUnlessEqual(self.cx.DatabaseError, sqlite.DatabaseError)134 self. failUnlessEqual(self.cx.DataError, sqlite.DataError)135 self. failUnlessEqual(self.cx.OperationalError, sqlite.OperationalError)136 self. failUnlessEqual(self.cx.IntegrityError, sqlite.IntegrityError)137 self. failUnlessEqual(self.cx.InternalError, sqlite.InternalError)138 self. failUnlessEqual(self.cx.ProgrammingError, sqlite.ProgrammingError)139 self. failUnlessEqual(self.cx.NotSupportedError, sqlite.NotSupportedError)133 self.assertEqual(self.cx.Warning, sqlite.Warning) 134 self.assertEqual(self.cx.Error, sqlite.Error) 135 self.assertEqual(self.cx.InterfaceError, sqlite.InterfaceError) 136 self.assertEqual(self.cx.DatabaseError, sqlite.DatabaseError) 137 self.assertEqual(self.cx.DataError, sqlite.DataError) 138 self.assertEqual(self.cx.OperationalError, sqlite.OperationalError) 139 self.assertEqual(self.cx.IntegrityError, sqlite.IntegrityError) 140 self.assertEqual(self.cx.InternalError, sqlite.InternalError) 141 self.assertEqual(self.cx.ProgrammingError, sqlite.ProgrammingError) 142 self.assertEqual(self.cx.NotSupportedError, sqlite.NotSupportedError) 140 143 141 144 class CursorTests(unittest.TestCase): … … 201 204 self.cu.execute("insert into test(name) values (?)", ("Hugo",)) 202 205 206 def CheckExecuteArgStringWithZeroByte(self): 207 self.cu.execute("insert into test(name) values (?)", ("Hu\x00go",)) 208 209 self.cu.execute("select name from test where id=?", (self.cu.lastrowid,)) 210 row = self.cu.fetchone() 211 self.assertEqual(row[0], "Hu\x00go") 212 203 213 def CheckExecuteWrongNoOfArgs1(self): 204 214 # too many parameters … … 229 239 self.cu.execute("select name from test where name=?", ["foo"]) 230 240 row = self.cu.fetchone() 231 self. failUnlessEqual(row[0], "foo")241 self.assertEqual(row[0], "foo") 232 242 233 243 def CheckExecuteParamSequence(self): … … 242 252 self.cu.execute("select name from test where name=?", L()) 243 253 row = self.cu.fetchone() 244 self. failUnlessEqual(row[0], "foo")254 self.assertEqual(row[0], "foo") 245 255 246 256 def CheckExecuteDictMapping(self): … … 248 258 self.cu.execute("select name from test where name=:name", {"name": "foo"}) 249 259 row = self.cu.fetchone() 250 self. failUnlessEqual(row[0], "foo")260 self.assertEqual(row[0], "foo") 251 261 252 262 def CheckExecuteDictMapping_Mapping(self): … … 262 272 self.cu.execute("select name from test where name=:name", D()) 263 273 row = self.cu.fetchone() 264 self. failUnlessEqual(row[0], "foo")274 self.assertEqual(row[0], "foo") 265 275 266 276 def CheckExecuteDictMappingTooLittleArgs(self): … … 296 306 self.cu.execute("insert into test(name) values ('foo')") 297 307 self.cu.execute("update test set name='bar'") 298 self. failUnlessEqual(self.cu.rowcount, 2)308 self.assertEqual(self.cu.rowcount, 2) 299 309 300 310 def CheckRowcountSelect(self): … … 305 315 """ 306 316 self.cu.execute("select 5 union select 6") 307 self. failUnlessEqual(self.cu.rowcount, -1)317 self.assertEqual(self.cu.rowcount, -1) 308 318 309 319 def CheckRowcountExecutemany(self): 310 320 self.cu.execute("delete from test") 311 321 self.cu.executemany("insert into test(name) values (?)", [(1,), (2,), (3,)]) 312 self. failUnlessEqual(self.cu.rowcount, 3)322 self.assertEqual(self.cu.rowcount, 3) 313 323 314 324 def CheckTotalChanges(self): … … 383 393 for row in self.cu: 384 394 lst.append(row[0]) 385 self. failUnlessEqual(lst[0], 5)386 self. failUnlessEqual(lst[1], 6)395 self.assertEqual(lst[0], 5) 396 self.assertEqual(lst[1], 6) 387 397 388 398 def CheckFetchone(self): 389 399 self.cu.execute("select name from test") 390 400 row = self.cu.fetchone() 391 self. failUnlessEqual(row[0], "foo")401 self.assertEqual(row[0], "foo") 392 402 row = self.cu.fetchone() 393 self. failUnlessEqual(row, None)403 self.assertEqual(row, None) 394 404 395 405 def CheckFetchoneNoStatement(self): 396 406 cur = self.cx.cursor() 397 407 row = cur.fetchone() 398 self. failUnlessEqual(row, None)408 self.assertEqual(row, None) 399 409 400 410 def CheckArraySize(self): 401 411 # must default ot 1 402 self. failUnlessEqual(self.cu.arraysize, 1)412 self.assertEqual(self.cu.arraysize, 1) 403 413 404 414 # now set to 2 … … 413 423 res = self.cu.fetchmany() 414 424 415 self. failUnlessEqual(len(res), 2)425 self.assertEqual(len(res), 2) 416 426 417 427 def CheckFetchmany(self): 418 428 self.cu.execute("select name from test") 419 429 res = self.cu.fetchmany(100) 420 self. failUnlessEqual(len(res), 1)430 self.assertEqual(len(res), 1) 421 431 res = self.cu.fetchmany(100) 422 self. failUnlessEqual(res, [])432 self.assertEqual(res, []) 423 433 424 434 def CheckFetchmanyKwArg(self): … … 426 436 self.cu.execute("select name from test") 427 437 res = self.cu.fetchmany(size=100) 428 self. failUnlessEqual(len(res), 1)438 self.assertEqual(len(res), 1) 429 439 430 440 def CheckFetchall(self): 431 441 self.cu.execute("select name from test") 432 442 res = self.cu.fetchall() 433 self. failUnlessEqual(len(res), 1)443 self.assertEqual(len(res), 1) 434 444 res = self.cu.fetchall() 435 self. failUnlessEqual(res, [])445 self.assertEqual(res, []) 436 446 437 447 def CheckSetinputsizes(self): … … 446 456 def CheckCursorConnection(self): 447 457 # Optional DB-API extension. 448 self. failUnlessEqual(self.cu.connection, self.cx)458 self.assertEqual(self.cu.connection, self.cx) 449 459 450 460 def CheckWrongCursorCallable(self): … … 466 476 pass 467 477 478 @unittest.skipUnless(threading, 'This test requires threading.') 468 479 class ThreadTests(unittest.TestCase): 469 480 def setUp(self): … … 657 668 cur.execute("select i from a") 658 669 res = cur.fetchone()[0] 659 self. failUnlessEqual(res, 5)670 self.assertEqual(res, 5) 660 671 661 672 def CheckScriptStringUnicode(self): … … 671 682 cur.execute("select i from a") 672 683 res = cur.fetchone()[0] 673 self. failUnlessEqual(res, 6)674 675 def CheckScript ErrorIncomplete(self):684 self.assertEqual(res, 6) 685 686 def CheckScriptSyntaxError(self): 676 687 con = sqlite.connect(":memory:") 677 688 cur = con.cursor() 678 689 raised = False 679 690 try: 680 cur.executescript("create table test( sadfsadfdsa")681 except sqlite. ProgrammingError:691 cur.executescript("create table test(x); asdf; create table test2(x)") 692 except sqlite.OperationalError: 682 693 raised = True 683 self. failUnlessEqual(raised, True, "should have raised an exception")694 self.assertEqual(raised, True, "should have raised an exception") 684 695 685 696 def CheckScriptErrorNormal(self): … … 691 702 except sqlite.OperationalError: 692 703 raised = True 693 self. failUnlessEqual(raised, True, "should have raised an exception")704 self.assertEqual(raised, True, "should have raised an exception") 694 705 695 706 def CheckConnectionExecute(self): 696 707 con = sqlite.connect(":memory:") 697 708 result = con.execute("select 5").fetchone()[0] 698 self. failUnlessEqual(result, 5, "Basic test of Connection.execute")709 self.assertEqual(result, 5, "Basic test of Connection.execute") 699 710 700 711 def CheckConnectionExecutemany(self): … … 703 714 con.executemany("insert into test(foo) values (?)", [(3,), (4,)]) 704 715 result = con.execute("select foo from test order by foo").fetchall() 705 self. failUnlessEqual(result[0][0], 3, "Basic test of Connection.executemany")706 self. failUnlessEqual(result[1][0], 4, "Basic test of Connection.executemany")716 self.assertEqual(result[0][0], 3, "Basic test of Connection.executemany") 717 self.assertEqual(result[1][0], 4, "Basic test of Connection.executemany") 707 718 708 719 def CheckConnectionExecutescript(self): … … 710 721 con.executescript("create table test(foo); insert into test(foo) values (5);") 711 722 result = con.execute("select foo from test").fetchone()[0] 712 self. failUnlessEqual(result, 5, "Basic test of Connection.executescript")713 714 class Closed Tests(unittest.TestCase):723 self.assertEqual(result, 5, "Basic test of Connection.executescript") 724 725 class ClosedConTests(unittest.TestCase): 715 726 def setUp(self): 716 727 pass … … 763 774 except: 764 775 self.fail("Should have raised a ProgrammingError") 765 766 776 767 777 def CheckClosedCreateFunction(self): … … 831 841 self.fail("Should have raised a ProgrammingError") 832 842 843 class ClosedCurTests(unittest.TestCase): 844 def setUp(self): 845 pass 846 847 def tearDown(self): 848 pass 849 850 def CheckClosed(self): 851 con = sqlite.connect(":memory:") 852 cur = con.cursor() 853 cur.close() 854 855 for method_name in ("execute", "executemany", "executescript", "fetchall", "fetchmany", "fetchone"): 856 if method_name in ("execute", "executescript"): 857 params = ("select 4 union select 5",) 858 elif method_name == "executemany": 859 params = ("insert into foo(bar) values (?)", [(3,), (4,)]) 860 else: 861 params = [] 862 863 try: 864 method = getattr(cur, method_name) 865 866 method(*params) 867 self.fail("Should have raised a ProgrammingError: method " + method_name) 868 except sqlite.ProgrammingError: 869 pass 870 except: 871 self.fail("Should have raised a ProgrammingError: " + method_name) 872 833 873 def suite(): 834 874 module_suite = unittest.makeSuite(ModuleTests, "Check") … … 838 878 constructor_suite = unittest.makeSuite(ConstructorTests, "Check") 839 879 ext_suite = unittest.makeSuite(ExtensionTests, "Check") 840 closed_suite = unittest.makeSuite(ClosedTests, "Check") 841 return unittest.TestSuite((module_suite, connection_suite, cursor_suite, thread_suite, constructor_suite, ext_suite, closed_suite)) 880 closed_con_suite = unittest.makeSuite(ClosedConTests, "Check") 881 closed_cur_suite = unittest.makeSuite(ClosedCurTests, "Check") 882 return unittest.TestSuite((module_suite, connection_suite, cursor_suite, thread_suite, constructor_suite, ext_suite, closed_con_suite, closed_cur_suite)) 842 883 843 884 def test():
Note:
See TracChangeset
for help on using the changeset viewer.