summaryrefslogtreecommitdiff
path: root/test/sql/test_resultset.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2020-08-10 18:40:49 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2020-08-12 12:23:56 -0400
commit6d4dcbb40571644494524738cd76e2e281323534 (patch)
tree55f63399ebe9d711b5d49e01f0436cead3e0a82e /test/sql/test_resultset.py
parent180ae7c1a53385f72b0047496ac001ec5099cc3e (diff)
downloadsqlalchemy-6d4dcbb40571644494524738cd76e2e281323534.tar.gz
Break scalars() and mappings() into separate objects
The issue of Result.fetchXXX() methods returning Row objects unless filtering is applied will not provide a clear enough API story when type annotations are applied, so break out scalars/mappings into separate wrapper objects. this makes some things more intuitive and other things a little more bumpy. however the return type story is now clearer. Fixes: #5503 Change-Id: I629a061823179680dc0723559183859a67ea4db1
Diffstat (limited to 'test/sql/test_resultset.py')
-rw-r--r--test/sql/test_resultset.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/sql/test_resultset.py b/test/sql/test_resultset.py
index 5642797e7..428f71999 100644
--- a/test/sql/test_resultset.py
+++ b/test/sql/test_resultset.py
@@ -316,6 +316,24 @@ class CursorResultTest(fixtures.TablesTest):
eq_(r[1:], (2, "foo@bar.com"))
eq_(r[:-1], (1, 2))
+ def test_mappings(self, connection):
+ users = self.tables.users
+ addresses = self.tables.addresses
+
+ connection.execute(users.insert(), user_id=1, user_name="john")
+ connection.execute(users.insert(), user_id=2, user_name="jack")
+ connection.execute(
+ addresses.insert(), address_id=1, user_id=2, address="foo@bar.com"
+ )
+
+ r = connection.execute(
+ text("select * from addresses", bind=testing.db)
+ )
+ eq_(
+ r.mappings().all(),
+ [{"address_id": 1, "user_id": 2, "address": "foo@bar.com"}],
+ )
+
def test_column_accessor_basic_compiled_mapping(self, connection):
users = self.tables.users