summaryrefslogtreecommitdiff
path: root/tests/test_extras_dictcursor.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_extras_dictcursor.py')
-rwxr-xr-xtests/test_extras_dictcursor.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/test_extras_dictcursor.py b/tests/test_extras_dictcursor.py
index d4bb12f..180d996 100755
--- a/tests/test_extras_dictcursor.py
+++ b/tests/test_extras_dictcursor.py
@@ -15,6 +15,7 @@
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
# License for more details.
+import copy
import time
import pickle
import unittest
@@ -158,6 +159,20 @@ class ExtrasDictCursorTests(_DictCursorBase):
self.assertEqual(r['b'], r1['b'])
self.assertEqual(r._index, r1._index)
+ def test_copy(self):
+ curs = self.conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
+ curs.execute("select 10 as foo, 'hi' as bar")
+ rv = curs.fetchone()
+ self.assertEqual(len(rv), 2)
+
+ rv2 = copy.copy(rv)
+ self.assertEqual(len(rv2), 2)
+ self.assertEqual(len(rv), 2)
+
+ rv3 = copy.deepcopy(rv)
+ self.assertEqual(len(rv3), 2)
+ self.assertEqual(len(rv), 2)
+
@skip_from_python(3)
def test_iter_methods_2(self):
curs = self.conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
@@ -267,6 +282,20 @@ class ExtrasDictCursorRealTests(_DictCursorBase):
self.assertEqual(r['a'], r1['a'])
self.assertEqual(r['b'], r1['b'])
+ def test_copy(self):
+ curs = self.conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
+ curs.execute("select 10 as foo, 'hi' as bar")
+ rv = curs.fetchone()
+ self.assertEqual(len(rv), 2)
+
+ rv2 = copy.copy(rv)
+ self.assertEqual(len(rv2), 2)
+ self.assertEqual(len(rv), 2)
+
+ rv3 = copy.deepcopy(rv)
+ self.assertEqual(len(rv3), 2)
+ self.assertEqual(len(rv), 2)
+
def testDictCursorRealWithNamedCursorFetchOne(self):
self._testWithNamedCursorReal(lambda curs: curs.fetchone())