Changeset 893 for trunk/tests


Ignore:
Timestamp:
Sep 21, 2016, 10:44:59 AM (3 years ago)
Author:
cito
Message:

Add a way to switch off array casting in pgdb

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/test_dbapi20.py

    r881 r893  
    931931        self.assertEqual(i8, 8)
    932932
     933    def test_set_typecast_for_arrays(self):
     934        query = 'select ARRAY[1,2,3]'
     935        try:
     936            con = self._connect()
     937            try:
     938                r = con.cursor().execute(query).fetchone()[0]
     939            finally:
     940                con.close()
     941            self.assertIsInstance(r, list)
     942            self.assertEqual(r, [1, 2, 3])
     943            pgdb.set_typecast('anyarray', lambda v, basecast: v)
     944            con = self._connect()
     945            try:
     946                r = con.cursor().execute(query).fetchone()[0]
     947            finally:
     948                con.close()
     949            self.assertIsInstance(r, str)
     950            self.assertEqual(r, '{1,2,3}')
     951        finally:
     952            pgdb.reset_typecast()
     953        con = self._connect()
     954        try:
     955            r = con.cursor().execute(query).fetchone()[0]
     956        finally:
     957            con.close()
     958        self.assertIsInstance(r, list)
     959        self.assertEqual(r, [1, 2, 3])
     960
    933961    def test_unicode_with_utf8(self):
    934962        table = self.table_prefix + 'booze'
Note: See TracChangeset for help on using the changeset viewer.