Changeset 813 for trunk/tests


Ignore:
Timestamp:
Feb 1, 2016, 11:14:36 AM (4 years ago)
Author:
cito
Message:

Make better use of ml_flags in the C module

This made the code a bit cleaner and smaller.

Also adapted some tests that still assumed set_bool(False).

Location:
trunk/tests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/test_classic_connection.py

    r806 r813  
    759759            pg.set_bool(bool_enabled)
    760760        try:
    761             v_false, v_true = (False, True) if bool_enabled else 'ft'
     761            bool_on = bool_enabled or bool_enabled is None
     762            v_false, v_true = (False, True) if bool_on else 'ft'
    762763            r_false, r_true = [(v_false,)], [(v_true,)]
    763764            self.assertEqual(query("select false").getresult(), r_false)
     
    10431044                self.assertIsInstance(row[2], long)
    10441045            if row[3] is not None:  # boolean
    1045                 self.assertIsInstance(row[3], str)
    1046                 row[3] = {'f': False, 't': True}.get(row[3])
     1046                self.assertIsInstance(row[3], bool)
    10471047            if row[4] is not None:  # date
    10481048                self.assertIsInstance(row[4], str)
     
    14051405        self.c = connect()
    14061406        self.c.query("set client_encoding=utf8")
     1407        self.c.query('set bytea_output=hex')
    14071408        self.c.query("set lc_monetary='C'")
    14081409
     
    16151616        self.assertRaises(TypeError, pg.get_bool, use_bool)
    16161617        self.assertIsInstance(use_bool, bool)
    1617         self.assertIs(use_bool, False)  # the default setting
     1618        self.assertIs(use_bool, True)  # the default setting
     1619        pg.set_bool(False)
     1620        try:
     1621            r = pg.get_bool()
     1622        finally:
     1623            pg.set_bool(use_bool)
     1624        self.assertIsInstance(r, bool)
     1625        self.assertIs(r, False)
    16181626        pg.set_bool(True)
    16191627        try:
     
    16231631        self.assertIsInstance(r, bool)
    16241632        self.assertIs(r, True)
    1625         pg.set_bool(False)
     1633        pg.set_bool(0)
    16261634        try:
    16271635            r = pg.get_bool()
     
    16371645        self.assertIsInstance(r, bool)
    16381646        self.assertIs(r, True)
    1639         pg.set_bool(0)
    1640         try:
    1641             r = pg.get_bool()
    1642         finally:
    1643             pg.set_bool(use_bool)
    1644         self.assertIsInstance(r, bool)
    1645         self.assertIs(r, False)
    16461647
    16471648    def testSetBool(self):
     
    16551656            self.skipTest('database does not support bool')
    16561657        r = r.getresult()[0][0]
     1658        self.assertIsInstance(r, bool)
     1659        self.assertEqual(r, True)
     1660        r = query("select true::bool")
     1661        pg.set_bool(False)
     1662        try:
     1663            r = r.getresult()[0][0]
     1664        finally:
     1665            pg.set_bool(use_bool)
    16571666        self.assertIsInstance(r, str)
    1658         self.assertEqual(r, 't')
     1667        self.assertIs(r, 't')
    16591668        r = query("select true::bool")
    16601669        pg.set_bool(True)
     
    16651674        self.assertIsInstance(r, bool)
    16661675        self.assertIs(r, True)
    1667         r = query("select true::bool")
    1668         pg.set_bool(False)
     1676
     1677    def testGetByteEscaped(self):
     1678        bytea_escaped = pg.get_bytea_escaped()
     1679        # error if a parameter is passed
     1680        self.assertRaises(TypeError, pg.get_bytea_escaped, bytea_escaped)
     1681        self.assertIsInstance(bytea_escaped, bool)
     1682        self.assertIs(bytea_escaped, False)  # the default setting
     1683        pg.set_bytea_escaped(True)
     1684        try:
     1685            r = pg.get_bytea_escaped()
     1686        finally:
     1687            pg.set_bytea_escaped(bytea_escaped)
     1688        self.assertIsInstance(r, bool)
     1689        self.assertIs(r, True)
     1690        pg.set_bytea_escaped(False)
     1691        try:
     1692            r = pg.get_bytea_escaped()
     1693        finally:
     1694            pg.set_bytea_escaped(bytea_escaped)
     1695        self.assertIsInstance(r, bool)
     1696        self.assertIs(r, False)
     1697        pg.set_bytea_escaped(1)
     1698        try:
     1699            r = pg.get_bytea_escaped()
     1700        finally:
     1701            pg.set_bytea_escaped(bytea_escaped)
     1702        self.assertIsInstance(r, bool)
     1703        self.assertIs(r, True)
     1704        pg.set_bytea_escaped(0)
     1705        try:
     1706            r = pg.get_bytea_escaped()
     1707        finally:
     1708            pg.set_bytea_escaped(bytea_escaped)
     1709        self.assertIsInstance(r, bool)
     1710        self.assertIs(r, False)
     1711
     1712    def testSetByteaEscaped(self):
     1713        bytea_escaped = pg.get_bytea_escaped()
     1714        # error if no parameter is passed
     1715        self.assertRaises(TypeError, pg.set_bytea_escaped)
     1716        query = self.c.query
     1717        try:
     1718            r = query("select 'data'::bytea")
     1719        except pg.ProgrammingError:
     1720            self.skipTest('database does not support bytea')
     1721        r = r.getresult()[0][0]
     1722        self.assertIsInstance(r, bytes)
     1723        self.assertEqual(r, b'data')
     1724        r = query("select 'data'::bytea")
     1725        pg.set_bytea_escaped(True)
    16691726        try:
    16701727            r = r.getresult()[0][0]
    16711728        finally:
    1672             pg.set_bool(use_bool)
     1729            pg.set_bytea_escaped(bytea_escaped)
    16731730        self.assertIsInstance(r, str)
    1674         self.assertIs(r, 't')
     1731        self.assertEqual(r, '\\x64617461')
     1732        r = query("select 'data'::bytea")
     1733        pg.set_bytea_escaped(False)
     1734        try:
     1735            r = r.getresult()[0][0]
     1736        finally:
     1737            pg.set_bytea_escaped(bytea_escaped)
     1738        self.assertIsInstance(r, bytes)
     1739        self.assertEqual(r, b'data')
    16751740
    16761741    def testGetNamedresult(self):
  • trunk/tests/test_classic_functions.py

    r806 r813  
    751751            self.assertIs(r, False)
    752752        finally:
    753             pg.set_bool(bytea_escaped)
     753            pg.set_bytea_escaped(bytea_escaped)
    754754        r = pg.get_bytea_escaped()
    755755        self.assertIsInstance(r, bool)
Note: See TracChangeset for help on using the changeset viewer.