MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_from_statement

Method test_from_statement

test/orm/test_subquery_relations.py:94–156  ·  view source on GitHub ↗
(self, legacy)

Source from the content-addressed store, hash-verified

92
93 @testing.combinations(True, False)
94 def test_from_statement(self, legacy):
95 users, Address, addresses, User = (
96 self.tables.users,
97 self.classes.Address,
98 self.tables.addresses,
99 self.classes.User,
100 )
101
102 self.mapper_registry.map_imperatively(
103 User,
104 users,
105 properties={
106 "addresses": relationship(
107 self.mapper_registry.map_imperatively(Address, addresses),
108 order_by=Address.id,
109 )
110 },
111 )
112 sess = fixture_session()
113
114 stmt = select(User).where(User.id == 7)
115
116 with self.sql_execution_asserter(testing.db) as asserter:
117 if legacy:
118 ret = (
119 sess.query(User)
120 # .where(User.id == 7)
121 .from_statement(stmt)
122 .options(subqueryload(User.addresses))
123 .all()
124 )
125 else:
126 ret = sess.scalars(
127 select(User)
128 .from_statement(stmt)
129 .options(subqueryload(User.addresses))
130 ).all()
131
132 eq_(self.static.user_address_result[0:1], ret)
133
134 asserter.assert_(
135 Or(
136 CompiledSQL(
137 "SELECT users.id AS users_id, users.name AS users_name "
138 "FROM users WHERE users.id = :id_1",
139 [{"id_1": 7}],
140 ),
141 CompiledSQL(
142 "SELECT users.id, users.name "
143 "FROM users WHERE users.id = :id_1",
144 [{"id_1": 7}],
145 ),
146 ),
147 # issue 7505
148 # subqueryload degrades for a from_statement. this is a lazyload
149 CompiledSQL(
150 "SELECT addresses.id, addresses.user_id, "
151 "addresses.email_address "

Callers

nothing calls this directly

Calls 15

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
selectFunction · 0.90
subqueryloadFunction · 0.90
eq_Function · 0.90
OrClass · 0.90
CompiledSQLClass · 0.90
map_imperativelyMethod · 0.80
whereMethod · 0.45
allMethod · 0.45
optionsMethod · 0.45

Tested by

no test coverage detected