summaryrefslogtreecommitdiff
path: root/test/sql/test_resultset.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/sql/test_resultset.py')
-rw-r--r--test/sql/test_resultset.py47
1 files changed, 46 insertions, 1 deletions
diff --git a/test/sql/test_resultset.py b/test/sql/test_resultset.py
index 42cf31bf5..4f776e300 100644
--- a/test/sql/test_resultset.py
+++ b/test/sql/test_resultset.py
@@ -100,10 +100,55 @@ class CursorResultTest(fixtures.TablesTest):
Table(
"test",
metadata,
- Column("x", Integer, primary_key=True),
+ Column(
+ "x", Integer, primary_key=True, test_needs_autoincrement=False
+ ),
Column("y", String(50)),
)
+ @testing.requires.insert_returning
+ def test_splice_horizontally(self, connection):
+ users = self.tables.users
+ addresses = self.tables.addresses
+
+ r1 = connection.execute(
+ users.insert().returning(users.c.user_name, users.c.user_id),
+ [
+ dict(user_id=1, user_name="john"),
+ dict(user_id=2, user_name="jack"),
+ ],
+ )
+
+ r2 = connection.execute(
+ addresses.insert().returning(
+ addresses.c.address_id,
+ addresses.c.address,
+ addresses.c.user_id,
+ ),
+ [
+ dict(address_id=1, user_id=1, address="foo@bar.com"),
+ dict(address_id=2, user_id=2, address="bar@bat.com"),
+ ],
+ )
+
+ rows = r1.splice_horizontally(r2).all()
+ eq_(
+ rows,
+ [
+ ("john", 1, 1, "foo@bar.com", 1),
+ ("jack", 2, 2, "bar@bat.com", 2),
+ ],
+ )
+
+ eq_(rows[0]._mapping[users.c.user_id], 1)
+ eq_(rows[0]._mapping[addresses.c.user_id], 1)
+ eq_(rows[1].address, "bar@bat.com")
+
+ with expect_raises_message(
+ exc.InvalidRequestError, "Ambiguous column name 'user_id'"
+ ):
+ rows[0].user_id
+
def test_keys_no_rows(self, connection):
for i in range(2):