MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_class_deferred_cols

Method test_class_deferred_cols

test/orm/test_pickled.py:185–234  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

183 eq_(str(u1), "User(name='ed')")
184
185 def test_class_deferred_cols(self):
186 addresses, users = (self.tables.addresses, self.tables.users)
187
188 self.mapper_registry.map_imperatively(
189 User,
190 users,
191 properties={
192 "name": sa.orm.deferred(users.c.name),
193 "addresses": relationship(Address, backref="user"),
194 },
195 )
196 self.mapper_registry.map_imperatively(
197 Address,
198 addresses,
199 properties={
200 "email_address": sa.orm.deferred(addresses.c.email_address)
201 },
202 )
203 with fixture_session(expire_on_commit=False) as sess:
204 u1 = User(name="ed")
205 u1.addresses.append(Address(email_address="ed@bar.com"))
206 sess.add(u1)
207 sess.commit()
208
209 with fixture_session() as sess:
210 u1 = sess.get(User, u1.id)
211 assert "name" not in u1.__dict__
212 assert "addresses" not in u1.__dict__
213
214 u2 = pickle.loads(pickle.dumps(u1))
215 with fixture_session() as sess2:
216 sess2.add(u2)
217 eq_(u2.name, "ed")
218 eq_(
219 u2,
220 User(
221 name="ed", addresses=[Address(email_address="ed@bar.com")]
222 ),
223 )
224
225 u2 = pickle.loads(pickle.dumps(u1))
226 with fixture_session() as sess2:
227 u2 = sess2.merge(u2, load=False)
228 eq_(u2.name, "ed")
229 eq_(
230 u2,
231 User(
232 name="ed", addresses=[Address(email_address="ed@bar.com")]
233 ),
234 )
235
236 def test_instance_lazy_relation_loaders(self):
237 users, addresses = (self.tables.users, self.tables.addresses)

Callers

nothing calls this directly

Calls 13

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
UserClass · 0.90
AddressClass · 0.90
eq_Function · 0.90
map_imperativelyMethod · 0.80
appendMethod · 0.45
addMethod · 0.45
commitMethod · 0.45
getMethod · 0.45
loadsMethod · 0.45
dumpsMethod · 0.45

Tested by

no test coverage detected