MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_make_transient

Method test_make_transient

test/orm/test_session.py:481–526  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

479 assert_raises(orm_exc.UnmappedInstanceError, objsession, User())
480
481 def test_make_transient(self):
482 users, User = self.tables.users, self.classes.User
483
484 self.mapper_registry.map_imperatively(User, users)
485 sess = fixture_session(autoflush=False)
486 sess.add(User(name="test"))
487 sess.flush()
488
489 u1 = sess.query(User).first()
490 make_transient(u1)
491 assert u1 not in sess
492 sess.add(u1)
493 assert u1 in sess.new
494
495 u1 = sess.query(User).first()
496 sess.expunge(u1)
497 make_transient(u1)
498 sess.add(u1)
499 assert u1 in sess.new
500
501 # test expired attributes
502 # get unexpired
503 u1 = sess.query(User).first()
504 sess.expire(u1)
505 make_transient(u1)
506 assert u1.id is None
507 assert u1.name is None
508
509 # works twice
510 make_transient(u1)
511
512 sess.close()
513
514 u1.name = "test2"
515 sess.add(u1)
516 sess.flush()
517 assert u1 in sess
518 sess.delete(u1)
519 sess.flush()
520 assert u1 not in sess
521
522 assert_raises(exc.InvalidRequestError, sess.add, u1)
523 make_transient(u1)
524 sess.add(u1)
525 sess.flush()
526 assert u1 in sess
527
528 def test_make_transient_plus_rollback(self):
529 # test for [ticket:2182]

Callers

nothing calls this directly

Calls 13

fixture_sessionFunction · 0.90
make_transientFunction · 0.90
assert_raisesFunction · 0.90
map_imperativelyMethod · 0.80
UserClass · 0.70
addMethod · 0.45
flushMethod · 0.45
firstMethod · 0.45
queryMethod · 0.45
expungeMethod · 0.45
expireMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected