Changeset 630 for trunk


Ignore:
Timestamp:
Nov 26, 2015, 10:34:23 AM (4 years ago)
Author:
cito
Message:

Add test for bool support in pgdb

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/module/TEST_PyGreSQL_dbapi20.py

    r629 r630  
    158158                self.assertEqual(inval, outval)
    159159
     160    def test_set_decimal_type(self):
     161        decimal_type = pgdb.decimal_type()
     162        self.assertTrue(decimal_type is not None and callable(decimal_type))
     163        con = self._connect()
     164        try:
     165            cur = con.cursor()
     166            self.assertTrue(pgdb.decimal_type(int) is int)
     167            cur.execute('select 42')
     168            value = cur.fetchone()[0]
     169            self.assertTrue(isinstance(value, int))
     170            self.assertEqual(value, 42)
     171            self.assertTrue(pgdb.decimal_type(float) is float)
     172            cur.execute('select 4.25')
     173            value = cur.fetchone()[0]
     174            self.assertTrue(isinstance(value, float))
     175            self.assertEqual(value, 4.25)
     176        finally:
     177            con.close()
     178            pgdb.decimal_type(decimal_type)
     179        self.assertTrue(pgdb.decimal_type() is decimal_type)
     180
    160181    def test_unicode_with_utf8(self):
    161182        table = self.table_prefix + 'booze'
     
    224245        self.assertTrue(output4)
    225246
    226     def test_set_decimal_type(self):
    227         decimal_type = pgdb.decimal_type()
    228         self.assertTrue(decimal_type is not None and callable(decimal_type))
    229         con = self._connect()
    230         try:
    231             cur = con.cursor()
    232             self.assertTrue(pgdb.decimal_type(int) is int)
    233             cur.execute('select 42')
    234             value = cur.fetchone()[0]
    235             self.assertTrue(isinstance(value, int))
    236             self.assertEqual(value, 42)
    237             self.assertTrue(pgdb.decimal_type(float) is float)
    238             cur.execute('select 4.25')
    239             value = cur.fetchone()[0]
    240             self.assertTrue(isinstance(value, float))
    241             self.assertEqual(value, 4.25)
    242         finally:
    243             con.close()
    244             pgdb.decimal_type(decimal_type)
    245         self.assertTrue(pgdb.decimal_type() is decimal_type)
     247    def test_bool(self):
     248        values = [[0, False], [1, True], [2, None],
     249                  [3, 't'], [4, 'f'], [5, 'true'], [6, 'false']]
     250        table = self.table_prefix + 'booze'
     251        con = self._connect()
     252        try:
     253            cur = con.cursor()
     254            cur.execute(
     255                "create table %s (n smallint, booltest bool)" % table)
     256            cur.executemany("insert into %s values (%%s,%%s)" % table, values)
     257            cur.execute("select * from %s order by 1" % table)
     258            rows = cur.fetchall()
     259        finally:
     260            con.close()
     261        values[3][1] = values[5][1] = True
     262        values[4][1] = values[6][1] = False
     263        self.assertEqual(rows, values)
    246264
    247265    def test_nextset(self):
Note: See TracChangeset for help on using the changeset viewer.