Пример #1
0
 def test_dbapi_primitives(self):
     conn = None
     try:
         conn = connect(self.jdbc_url)
         cursor = conn.cursor()
 
         cursor.execute('''
         create table primitives (
             one integer,
             two_string text,
             three char(10),
             four double,
             five real
             )
         ''')
         
         # Some versions of sqlite are not storing full precision.
         # This is Double.MAX_VALUE, but truncated to 10 digits after the decimal.
         doubleValue = 1.7976931348e+308
         
         cursor.execute('insert into primitives values (?, ?, ?, ?, ?)',
                        Integer.MAX_VALUE,
                        'testé',
                        None,
                        doubleValue,
                        5.6,
                        )
         cursor.execute('select * from primitives')
         row = cursor.fetchone()
 
         self.assertEqual(row[0], Integer.MAX_VALUE)
         self.assertEqual(cursor.description[0][0], 'one')
         self.assertEqual(cursor.description[0][1], 4)  # sql type integer
 
         self.assertEqual(row[1], 'testé')
         self.assertEqual(cursor.description[1][0], 'two_string')
 
         self.assertIsNone(row[2])
         self.assertEqual(cursor.description[2][0], 'three')
 
         self.assertEqual(row[3], doubleValue)
         self.assertEqual(cursor.description[3][0], 'four')
 
         self.assertEqual(row[4], 5.6)
         self.assertEqual(cursor.description[4][0], 'five')
         cursor.close()
     finally:
         if conn:
             conn.close()
Пример #2
0
    def test_batch(self):
        conn = connect(self.jdbc_url)
        cursor = conn.cursor()

        cursor.execute('create table batch ( one integer )')

        cursor.executemany('insert into batch values (?)', [
            (1, ),
            (2, ),
            (3, ),
        ])

        cursor.execute('select sum(one) from batch')
        row = cursor.fetchone()
        self.assertEqual(row[0], 6)
Пример #3
0
    def test_batch(self):
        conn = connect(self.jdbc_url)
        cursor = conn.cursor()

        cursor.execute('create table batch ( one integer )')

        cursor.executemany('insert into batch values (?)', [
            (1,),
            (2,),
            (3,),
        ])

        cursor.execute('select sum(one) from batch')
        row = cursor.fetchone()
        self.assertEqual(row[0], 6)
Пример #4
0
    def test_datetime(self):
        conn = None
        try:
            conn = connect(self.jdbc_url)
            cursor = conn.cursor()

            cursor.execute('''
            create table dt (
                one date,
                two date,
                three time,
                four time,
                five timestamp
                )
            ''')

            cursor.execute(
                'insert into dt values (?, ?, ?, ?, ?)',
                dbapi.Date(2012, 6, 1),
                Date(1338534000000),
                Time(1),
                dbapi.Time(1, 2, 3),
                dbapi.Timestamp(2012, 6, 1, 1, 2, 3),
            )
            cursor.execute('select * from dt')

            # crazy sqllite doesn't have normal date types.
            # this will force jep.jdbc to interpret the result correctly for this
            # test.
            cursor.description = (
                ('one', 91, None, None, None, None, True),
                ('two', 91, None, None, None, None, True),
                ('three', 92, None, None, None, None, True),
                ('four', 92, None, None, None, None, True),
                ('five', 93, None, None, None, None, True),
            )
            row = cursor.fetchone()

            self.assertEqual(row[0].toString(), '2012-06-01')
            self.assertEqual(row[1].getTime(), 1338534000000)
            self.assertEqual(row[2].getTime(), 1)
            self.assertEqual(row[3].toString(), '01:02:03')
            self.assertEqual(row[4].toString(), '2012-06-01 01:02:03.0')
            cursor.close()
        finally:
            if conn:
                conn.close()
Пример #5
0
 def test_datetime(self):
     conn = None
     try:
         conn = connect(self.jdbc_url)
         cursor = conn.cursor()
 
         cursor.execute('''
         create table dt (
             one date,
             two date,
             three time,
             four time,
             five timestamp
             )
         ''')
 
         cursor.execute('insert into dt values (?, ?, ?, ?, ?)',
                        dbapi.Date(2012, 6, 1),
                        Date(1338534000000),
                        Time(1),
                        dbapi.Time(1, 2, 3),
                        dbapi.Timestamp(2012, 6, 1, 1, 2, 3),
                        )
         cursor.execute('select * from dt')
 
         # crazy sqllite doesn't have normal date types.
         # this will force jep.jdbc to interpret the result correctly for this
         # test.
         cursor.description = (
             ('one', 91, None, None, None, None, True),
             ('two', 91, None, None, None, None, True),
             ('three', 92, None, None, None, None, True),
             ('four', 92, None, None, None, None, True),
             ('five', 93, None, None, None, None, True),
         )
         row = cursor.fetchone()
 
         self.assertEqual(row[0].toString(), '2012-06-01')
         self.assertEqual(row[1].getTime(), 1338534000000)
         self.assertEqual(row[2].getTime(), 1)
         self.assertEqual(row[3].toString(), '01:02:03')
         self.assertEqual(row[4].toString(), '2012-06-01 01:02:03.0')
         cursor.close()
     finally:
         if conn:
             conn.close()
Пример #6
0
    def test_dbapi_primitives(self):
        conn = connect(self.jdbc_url)
        cursor = conn.cursor()

        cursor.execute('''
        create table primitives (
            one integer,
            two_string text,
            three char(10),
            four double,
            five real
            )
        ''')
        cursor.execute(
            'insert into primitives values (?, ?, ?, ?, ?)',
            Integer.MAX_VALUE,
            'testé',
            None,
            Double.MAX_VALUE,
            5.6,
        )
        cursor.execute('select * from primitives')
        row = cursor.fetchone()

        self.assertEqual(row[0], Integer.MAX_VALUE)
        self.assertEqual(cursor.description[0][0], 'one')
        self.assertEqual(cursor.description[0][1], 4)  # sql type integer

        self.assertEqual(row[1], 'testé')
        self.assertEqual(cursor.description[1][0], 'two_string')

        self.assertIsNone(row[2])
        self.assertEqual(cursor.description[2][0], 'three')

        self.assertEqual(row[3], Double.MAX_VALUE)
        self.assertEqual(cursor.description[3][0], 'four')

        self.assertEqual(row[4], 5.6)
        self.assertEqual(cursor.description[4][0], 'five')
Пример #7
0
    def test_dbapi_primitives(self):
        conn = connect(self.jdbc_url)
        cursor = conn.cursor()

        cursor.execute('''
        create table primitives (
            one integer,
            two_string text,
            three char(10),
            four double,
            five real
            )
        ''')
        cursor.execute('insert into primitives values (?, ?, ?, ?, ?)',
                       Integer.MAX_VALUE,
                       'testé',
                       None,
                       Double.MAX_VALUE,
                       5.6,
                       )
        cursor.execute('select * from primitives')
        row = cursor.fetchone()

        self.assertEqual(row[0], Integer.MAX_VALUE)
        self.assertEqual(cursor.description[0][0], 'one')
        self.assertEqual(cursor.description[0][1], 4) # sql type integer

        self.assertEqual(row[1], 'testé')
        self.assertEqual(cursor.description[1][0], 'two_string')

        self.assertIsNone(row[2])
        self.assertEqual(cursor.description[2][0], 'three')

        self.assertEqual(row[3], Double.MAX_VALUE)
        self.assertEqual(cursor.description[3][0], 'four')

        self.assertEqual(row[4], 5.6)
        self.assertEqual(cursor.description[4][0], 'five')
Пример #8
0
    def test_dbapi_primitives(self):
        conn = None
        try:
            conn = connect(self.jdbc_url)
            cursor = conn.cursor()

            cursor.execute('''
            create table primitives (
                one integer,
                two_string text,
                three char(10),
                four double,
                five real
                )
            ''')

            # Some versions of sqlite are not storing full precision.
            # This is Double.MAX_VALUE, but truncated to 10 digits after the decimal.
            doubleValue = 1.7976931348e+308

            cursor.execute(
                'insert into primitives values (?, ?, ?, ?, ?)',
                Integer.MAX_VALUE,
                'testé',
                None,
                doubleValue,
                5.6,
            )
            #*** beg: jtypes extension ***#
            cursor.execute(
                "insert into primitives values (?, ?, ?, ?, ?)",
                Integer.MAX_VALUE - 1,
                "bar",
                None,
                doubleValue - 1.0,
                15.8,
            )
            cursor.execute(
                "insert into primitives values (?, ?, ?, ?, ?)",
                Integer.MAX_VALUE - 3,
                "foo",
                None,
                doubleValue - 3.0,
                34.9,
            )
            #*** end: jtypes extension ***#
            cursor.execute('select * from primitives')
            row = cursor.fetchone()

            self.assertEqual(row[0], Integer.MAX_VALUE)
            self.assertEqual(cursor.description[0][0], 'one')
            self.assertEqual(cursor.description[0][1], 4)  # sql type integer

            self.assertEqual(row[1], 'testé')
            self.assertEqual(cursor.description[1][0], 'two_string')

            self.assertIsNone(row[2])
            self.assertEqual(cursor.description[2][0], 'three')

            self.assertEqual(row[3], doubleValue)
            self.assertEqual(cursor.description[3][0], 'four')

            self.assertEqual(row[4], 5.6)
            self.assertEqual(cursor.description[4][0], 'five')

            #*** beg: jtypes extension ***#

            row = cursor.fetchmany(1)[0]

            self.assertEqual(row[0], Integer.MAX_VALUE - 1)
            self.assertEqual(cursor.description[0][0], "one")
            self.assertEqual(cursor.description[0][1], 4)  # sql type integer

            self.assertEqual(row[1], "bar")
            self.assertEqual(cursor.description[1][0], "two_string")

            self.assertIsNone(row[2])
            self.assertEqual(cursor.description[2][0], "three")

            self.assertEqual(row[3], doubleValue - 1.0)
            self.assertEqual(cursor.description[3][0], "four")

            self.assertEqual(row[4], 15.8)
            self.assertEqual(cursor.description[4][0], "five")

            row = cursor.fetchall()[0]

            self.assertEqual(row[0], Integer.MAX_VALUE - 3)
            self.assertEqual(cursor.description[0][0], "one")
            self.assertEqual(cursor.description[0][1], 4)  # sql type integer

            self.assertEqual(row[1], "foo")
            self.assertEqual(cursor.description[1][0], "two_string")

            self.assertIsNone(row[2])
            self.assertEqual(cursor.description[2][0], "three")

            self.assertEqual(row[3], doubleValue - 3.0)
            self.assertEqual(cursor.description[3][0], "four")

            self.assertEqual(row[4], 34.9)
            self.assertEqual(cursor.description[4][0], "five")

            #*** end: jtypes extension ***#

            cursor.close()
        finally:
            if conn:
                conn.close()