summaryrefslogtreecommitdiff
path: root/test/engine/test_execute.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/engine/test_execute.py')
-rw-r--r--test/engine/test_execute.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py
index ee5953c74..bbec402b2 100644
--- a/test/engine/test_execute.py
+++ b/test/engine/test_execute.py
@@ -289,6 +289,37 @@ class ResultProxyTest(TestBase):
assert_raises(AssertionError, t.delete().execute)
finally:
engine.dialect.execution_ctx_cls = execution_ctx_cls
+
+ def test_rowproxy_is_sequence(self):
+ import collections
+ from sqlalchemy.engine import RowProxy
+
+ row = RowProxy(object(), ['value'], [None], {'key'
+ : (None, 0), 0: (None, 0)})
+ assert isinstance(row, collections.Sequence)
+
+ @testing.requires.cextensions
+ def test_row_c_sequence_check(self):
+ import csv
+ import collections
+ from StringIO import StringIO
+
+ metadata = MetaData()
+ metadata.bind = 'sqlite://'
+ users = Table('users', metadata,
+ Column('id', Integer, primary_key=True),
+ Column('name', String(40)),
+ )
+ users.create()
+
+ users.insert().execute(name='Test')
+ row = users.select().execute().fetchone()
+
+ s = StringIO()
+ writer = csv.writer(s)
+ # csv performs PySequenceCheck call
+ writer.writerow(row)
+ assert s.getvalue().strip() == '1,Test'
class ProxyConnectionTest(TestBase):