Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/sqlite3/test/dbapi.py

    r2 r391  
    22# pysqlite2/test/dbapi.py: tests for DB-API compliance
    33#
    4 # Copyright (C) 2004-2007 Gerhard Häring <gh@ghaering.de>
     4# Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de>
    55#
    66# This file is part of pysqlite.
     
    2424import unittest
    2525import sys
    26 import threading
    2726import sqlite3 as sqlite
     27try:
     28    import threading
     29except ImportError:
     30    threading = None
    2831
    2932class ModuleTests(unittest.TestCase):
     
    4245
    4346    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")
    4649
    4750    def CheckError(self):
    48         self.failUnless(issubclass(sqlite.Error, StandardError),
     51        self.assertTrue(issubclass(sqlite.Error, StandardError),
    4952                        "Error is not a subclass of StandardError")
    5053
    5154    def CheckInterfaceError(self):
    52         self.failUnless(issubclass(sqlite.InterfaceError, sqlite.Error),
     55        self.assertTrue(issubclass(sqlite.InterfaceError, sqlite.Error),
    5356                        "InterfaceError is not a subclass of Error")
    5457
    5558    def CheckDatabaseError(self):
    56         self.failUnless(issubclass(sqlite.DatabaseError, sqlite.Error),
     59        self.assertTrue(issubclass(sqlite.DatabaseError, sqlite.Error),
    5760                        "DatabaseError is not a subclass of Error")
    5861
    5962    def CheckDataError(self):
    60         self.failUnless(issubclass(sqlite.DataError, sqlite.DatabaseError),
     63        self.assertTrue(issubclass(sqlite.DataError, sqlite.DatabaseError),
    6164                        "DataError is not a subclass of DatabaseError")
    6265
    6366    def CheckOperationalError(self):
    64         self.failUnless(issubclass(sqlite.OperationalError, sqlite.DatabaseError),
     67        self.assertTrue(issubclass(sqlite.OperationalError, sqlite.DatabaseError),
    6568                        "OperationalError is not a subclass of DatabaseError")
    6669
    6770    def CheckIntegrityError(self):
    68         self.failUnless(issubclass(sqlite.IntegrityError, sqlite.DatabaseError),
     71        self.assertTrue(issubclass(sqlite.IntegrityError, sqlite.DatabaseError),
    6972                        "IntegrityError is not a subclass of DatabaseError")
    7073
    7174    def CheckInternalError(self):
    72         self.failUnless(issubclass(sqlite.InternalError, sqlite.DatabaseError),
     75        self.assertTrue(issubclass(sqlite.InternalError, sqlite.DatabaseError),
    7376                        "InternalError is not a subclass of DatabaseError")
    7477
    7578    def CheckProgrammingError(self):
    76         self.failUnless(issubclass(sqlite.ProgrammingError, sqlite.DatabaseError),
     79        self.assertTrue(issubclass(sqlite.ProgrammingError, sqlite.DatabaseError),
    7780                        "ProgrammingError is not a subclass of DatabaseError")
    7881
    7982    def CheckNotSupportedError(self):
    80         self.failUnless(issubclass(sqlite.NotSupportedError,
     83        self.assertTrue(issubclass(sqlite.NotSupportedError,
    8184                                   sqlite.DatabaseError),
    8285                        "NotSupportedError is not a subclass of DatabaseError")
     
    128131    def CheckExceptions(self):
    129132        # 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)
    140143
    141144class CursorTests(unittest.TestCase):
     
    201204        self.cu.execute("insert into test(name) values (?)", ("Hugo",))
    202205
     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
    203213    def CheckExecuteWrongNoOfArgs1(self):
    204214        # too many parameters
     
    229239        self.cu.execute("select name from test where name=?", ["foo"])
    230240        row = self.cu.fetchone()
    231         self.failUnlessEqual(row[0], "foo")
     241        self.assertEqual(row[0], "foo")
    232242
    233243    def CheckExecuteParamSequence(self):
     
    242252        self.cu.execute("select name from test where name=?", L())
    243253        row = self.cu.fetchone()
    244         self.failUnlessEqual(row[0], "foo")
     254        self.assertEqual(row[0], "foo")
    245255
    246256    def CheckExecuteDictMapping(self):
     
    248258        self.cu.execute("select name from test where name=:name", {"name": "foo"})
    249259        row = self.cu.fetchone()
    250         self.failUnlessEqual(row[0], "foo")
     260        self.assertEqual(row[0], "foo")
    251261
    252262    def CheckExecuteDictMapping_Mapping(self):
     
    262272        self.cu.execute("select name from test where name=:name", D())
    263273        row = self.cu.fetchone()
    264         self.failUnlessEqual(row[0], "foo")
     274        self.assertEqual(row[0], "foo")
    265275
    266276    def CheckExecuteDictMappingTooLittleArgs(self):
     
    296306        self.cu.execute("insert into test(name) values ('foo')")
    297307        self.cu.execute("update test set name='bar'")
    298         self.failUnlessEqual(self.cu.rowcount, 2)
     308        self.assertEqual(self.cu.rowcount, 2)
    299309
    300310    def CheckRowcountSelect(self):
     
    305315        """
    306316        self.cu.execute("select 5 union select 6")
    307         self.failUnlessEqual(self.cu.rowcount, -1)
     317        self.assertEqual(self.cu.rowcount, -1)
    308318
    309319    def CheckRowcountExecutemany(self):
    310320        self.cu.execute("delete from test")
    311321        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)
    313323
    314324    def CheckTotalChanges(self):
     
    383393        for row in self.cu:
    384394            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)
    387397
    388398    def CheckFetchone(self):
    389399        self.cu.execute("select name from test")
    390400        row = self.cu.fetchone()
    391         self.failUnlessEqual(row[0], "foo")
     401        self.assertEqual(row[0], "foo")
    392402        row = self.cu.fetchone()
    393         self.failUnlessEqual(row, None)
     403        self.assertEqual(row, None)
    394404
    395405    def CheckFetchoneNoStatement(self):
    396406        cur = self.cx.cursor()
    397407        row = cur.fetchone()
    398         self.failUnlessEqual(row, None)
     408        self.assertEqual(row, None)
    399409
    400410    def CheckArraySize(self):
    401411        # must default ot 1
    402         self.failUnlessEqual(self.cu.arraysize, 1)
     412        self.assertEqual(self.cu.arraysize, 1)
    403413
    404414        # now set to 2
     
    413423        res = self.cu.fetchmany()
    414424
    415         self.failUnlessEqual(len(res), 2)
     425        self.assertEqual(len(res), 2)
    416426
    417427    def CheckFetchmany(self):
    418428        self.cu.execute("select name from test")
    419429        res = self.cu.fetchmany(100)
    420         self.failUnlessEqual(len(res), 1)
     430        self.assertEqual(len(res), 1)
    421431        res = self.cu.fetchmany(100)
    422         self.failUnlessEqual(res, [])
     432        self.assertEqual(res, [])
    423433
    424434    def CheckFetchmanyKwArg(self):
     
    426436        self.cu.execute("select name from test")
    427437        res = self.cu.fetchmany(size=100)
    428         self.failUnlessEqual(len(res), 1)
     438        self.assertEqual(len(res), 1)
    429439
    430440    def CheckFetchall(self):
    431441        self.cu.execute("select name from test")
    432442        res = self.cu.fetchall()
    433         self.failUnlessEqual(len(res), 1)
     443        self.assertEqual(len(res), 1)
    434444        res = self.cu.fetchall()
    435         self.failUnlessEqual(res, [])
     445        self.assertEqual(res, [])
    436446
    437447    def CheckSetinputsizes(self):
     
    446456    def CheckCursorConnection(self):
    447457        # Optional DB-API extension.
    448         self.failUnlessEqual(self.cu.connection, self.cx)
     458        self.assertEqual(self.cu.connection, self.cx)
    449459
    450460    def CheckWrongCursorCallable(self):
     
    466476            pass
    467477
     478@unittest.skipUnless(threading, 'This test requires threading.')
    468479class ThreadTests(unittest.TestCase):
    469480    def setUp(self):
     
    657668        cur.execute("select i from a")
    658669        res = cur.fetchone()[0]
    659         self.failUnlessEqual(res, 5)
     670        self.assertEqual(res, 5)
    660671
    661672    def CheckScriptStringUnicode(self):
     
    671682        cur.execute("select i from a")
    672683        res = cur.fetchone()[0]
    673         self.failUnlessEqual(res, 6)
    674 
    675     def CheckScriptErrorIncomplete(self):
     684        self.assertEqual(res, 6)
     685
     686    def CheckScriptSyntaxError(self):
    676687        con = sqlite.connect(":memory:")
    677688        cur = con.cursor()
    678689        raised = False
    679690        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:
    682693            raised = True
    683         self.failUnlessEqual(raised, True, "should have raised an exception")
     694        self.assertEqual(raised, True, "should have raised an exception")
    684695
    685696    def CheckScriptErrorNormal(self):
     
    691702        except sqlite.OperationalError:
    692703            raised = True
    693         self.failUnlessEqual(raised, True, "should have raised an exception")
     704        self.assertEqual(raised, True, "should have raised an exception")
    694705
    695706    def CheckConnectionExecute(self):
    696707        con = sqlite.connect(":memory:")
    697708        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")
    699710
    700711    def CheckConnectionExecutemany(self):
     
    703714        con.executemany("insert into test(foo) values (?)", [(3,), (4,)])
    704715        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")
    707718
    708719    def CheckConnectionExecutescript(self):
     
    710721        con.executescript("create table test(foo); insert into test(foo) values (5);")
    711722        result = con.execute("select foo from test").fetchone()[0]
    712         self.failUnlessEqual(result, 5, "Basic test of Connection.executescript")
    713 
    714 class ClosedTests(unittest.TestCase):
     723        self.assertEqual(result, 5, "Basic test of Connection.executescript")
     724
     725class ClosedConTests(unittest.TestCase):
    715726    def setUp(self):
    716727        pass
     
    763774        except:
    764775            self.fail("Should have raised a ProgrammingError")
    765 
    766776
    767777    def CheckClosedCreateFunction(self):
     
    831841            self.fail("Should have raised a ProgrammingError")
    832842
     843class 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
    833873def suite():
    834874    module_suite = unittest.makeSuite(ModuleTests, "Check")
     
    838878    constructor_suite = unittest.makeSuite(ConstructorTests, "Check")
    839879    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))
    842883
    843884def test():
Note: See TracChangeset for help on using the changeset viewer.