diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2019-04-05 19:03:38 +0100 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2019-04-06 19:43:09 +0100 |
commit | 21d16b6f6754e5d8ddf10b0d383fe731f13bce8e (patch) | |
tree | 4e7600577c4eeb2074403ab7bd6e1e0027a8c0fb /tests | |
parent | 7b31b39fedbcbb310ce1c02862c7f61d301109cf (diff) | |
download | psycopg2-21d16b6f6754e5d8ddf10b0d383fe731f13bce8e.tar.gz |
Fixed RealDictCursor.pop()
Addresses #886, but there might be something else broken there.
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test_extras_dictcursor.py | 19 |
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): |