summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2019-04-05 19:03:38 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2019-04-06 19:43:09 +0100
commit21d16b6f6754e5d8ddf10b0d383fe731f13bce8e (patch)
tree4e7600577c4eeb2074403ab7bd6e1e0027a8c0fb /tests
parent7b31b39fedbcbb310ce1c02862c7f61d301109cf (diff)
downloadpsycopg2-21d16b6f6754e5d8ddf10b0d383fe731f13bce8e.tar.gz
Fixed RealDictCursor.pop()
Addresses #886, but there might be something else broken there.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test_extras_dictcursor.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/test_extras_dictcursor.py b/tests/test_extras_dictcursor.py
index 7eee4cc..119110e 100755
--- a/tests/test_extras_dictcursor.py
+++ b/tests/test_extras_dictcursor.py
@@ -221,6 +221,12 @@ class ExtrasDictCursorTests(_DictCursorBase):
class ExtrasDictCursorRealTests(_DictCursorBase):
+ def testRealMeansReal(self):
+ curs = self.conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
+ curs.execute("SELECT * FROM ExtrasDictCursorTests")
+ row = curs.fetchone()
+ self.assert_(isinstance(row, dict))
+
def testDictCursorWithPlainCursorRealFetchOne(self):
self._testWithPlainCursorReal(lambda curs: curs.fetchone())
@@ -358,6 +364,19 @@ class ExtrasDictCursorRealTests(_DictCursorBase):
self.assertEqual(list(r1.itervalues()), list(r.itervalues()))
self.assertEqual(list(r1.iteritems()), list(r.iteritems()))
+ def test_pop(self):
+ curs = self.conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
+ curs.execute("select 1 as a, 2 as b, 3 as c")
+ r = curs.fetchone()
+ self.assertEqual(r.pop('b'), 2)
+ self.assertEqual(list(r), ['a', 'c'])
+ self.assertEqual(list(r.keys()), ['a', 'c'])
+ self.assertEqual(list(r.values()), [1, 3])
+ self.assertEqual(list(r.items()), [('a', 1), ('c', 3)])
+
+ self.assertEqual(r.pop('b', None), None)
+ self.assertRaises(KeyError, r.pop, 'b')
+
class NamedTupleCursorTest(ConnectingTestCase):
def setUp(self):