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()
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)
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)
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()
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()
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')
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')
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()