diff options
Diffstat (limited to 'test/orm/test_merge.py')
| -rw-r--r-- | test/orm/test_merge.py | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/test/orm/test_merge.py b/test/orm/test_merge.py index c45a0e9da..47203b874 100644 --- a/test/orm/test_merge.py +++ b/test/orm/test_merge.py @@ -48,7 +48,7 @@ class MergeTest(_fixtures.FixtureTest): eq_(sess.query(User).first(), User(id=7, name='fred')) def test_transient_to_pending_no_pk(self): - """test that a transient object with no PK attribute + """test that a transient object with no PK attribute doesn't trigger a needless load.""" User, users = self.classes.User, self.tables.users @@ -219,7 +219,7 @@ class MergeTest(_fixtures.FixtureTest): Address(id=3, email_address='fred3')]))) def test_unsaved_cascade(self): - """Merge of a transient entity with two child transient + """Merge of a transient entity with two child transient entities, with a bidirectional relationship.""" users, Address, addresses, User = (self.tables.users, @@ -271,7 +271,7 @@ class MergeTest(_fixtures.FixtureTest): sess = create_session() # merge empty stuff. goes in as NULL. - # not sure what this was originally trying to + # not sure what this was originally trying to # test. u1 = sess.merge(User(id=1)) sess.flush() @@ -309,7 +309,7 @@ class MergeTest(_fixtures.FixtureTest): sess.flush() # blow it away from u5, but don't - # mark as expired. so it would just + # mark as expired. so it would just # be blank. del u5.data @@ -349,7 +349,7 @@ class MergeTest(_fixtures.FixtureTest): assert u1.addresses.keys() == ['foo@bar.com'] def test_attribute_cascade(self): - """Merge of a persistent entity with two child + """Merge of a persistent entity with two child persistent entities.""" users, Address, addresses, User = (self.tables.users, @@ -359,7 +359,7 @@ class MergeTest(_fixtures.FixtureTest): mapper(User, users, properties={ - 'addresses':relationship(mapper(Address, addresses), + 'addresses':relationship(mapper(Address, addresses), backref='user') }) load = self.load_tracker(User) @@ -557,7 +557,7 @@ class MergeTest(_fixtures.FixtureTest): sess2 = create_session() a2 = sess2.merge(a1) eq_( - attributes.get_history(a2, 'user'), + attributes.get_history(a2, 'user'), ([u2], (), ()) ) assert a2 in sess2.dirty @@ -567,7 +567,7 @@ class MergeTest(_fixtures.FixtureTest): sess2 = create_session() a2 = sess2.merge(a1, load=False) eq_( - attributes.get_history(a2, 'user'), + attributes.get_history(a2, 'user'), ((), [u1], ()) ) assert a2 not in sess2.dirty @@ -581,7 +581,7 @@ class MergeTest(_fixtures.FixtureTest): mapper(Order, orders, properties={ - 'items':relationship(mapper(Item, items), + 'items':relationship(mapper(Item, items), secondary=order_items)}) load = self.load_tracker(Order) @@ -672,7 +672,7 @@ class MergeTest(_fixtures.FixtureTest): uselist = False, backref='user') }) sess = sessionmaker()() - u = User(id=7, name="fred", + u = User(id=7, name="fred", address=Address(id=1, email_address='foo@bar.com')) sess.add(u) sess.commit() @@ -696,12 +696,12 @@ class MergeTest(_fixtures.FixtureTest): sess = create_session() u = User() - assert_raises_message(sa.exc.InvalidRequestError, - "load=False option does not support", + assert_raises_message(sa.exc.InvalidRequestError, + "load=False option does not support", sess.merge, u, load=False) def test_no_load_with_backrefs(self): - """load=False populates relationships in both + """load=False populates relationships in both directions without requiring a load""" users, Address, addresses, User = (self.tables.users, @@ -710,7 +710,7 @@ class MergeTest(_fixtures.FixtureTest): self.classes.User) mapper(User, users, properties={ - 'addresses':relationship(mapper(Address, addresses), + 'addresses':relationship(mapper(Address, addresses), backref='user') }) @@ -740,7 +740,7 @@ class MergeTest(_fixtures.FixtureTest): def test_dontload_with_eager(self): """ - + This test illustrates that with load=False, we can't just copy the committed_state of the merged instance over; since it references collection objects which themselves are to be merged. @@ -749,7 +749,7 @@ class MergeTest(_fixtures.FixtureTest): moment I'd rather not support this use case; if you are merging with load=False, you're typically dealing with caching and the merged objects shouldnt be 'dirty'. - + """ users, Address, addresses, User = (self.tables.users, @@ -852,7 +852,7 @@ class MergeTest(_fixtures.FixtureTest): def test_no_load_preserves_parents(self): """Merge with load=False does not trigger a 'delete-orphan' operation. - + merge with load=False sets attributes without using events. this means the 'hasparent' flag is not propagated to the newly merged instance. in fact this works out OK, because the @@ -861,7 +861,7 @@ class MergeTest(_fixtures.FixtureTest): this collection when _is_orphan() is called, it does not count as an orphan (i.e. this is the 'optimistic' logic in mapper._is_orphan().) - + """ users, Address, addresses, User = (self.tables.users, @@ -871,7 +871,7 @@ class MergeTest(_fixtures.FixtureTest): mapper(User, users, properties={ 'addresses':relationship(mapper(Address, addresses), - backref='user', + backref='user', cascade="all, delete-orphan")}) sess = create_session() u = User() @@ -972,7 +972,7 @@ class MergeTest(_fixtures.FixtureTest): a1 = Address(user=s.merge(User(id=1, name='ed')), email_address='x') before_id = id(a1.user) - a2 = Address(user=s.merge(User(id=1, name='jack')), + a2 = Address(user=s.merge(User(id=1, name='jack')), email_address='x') after_id = id(a1.user) other_id = id(a2.user) @@ -991,7 +991,7 @@ class MergeTest(_fixtures.FixtureTest): m = mapper(User, users, properties={ 'addresses':relationship(mapper(Address, addresses), backref='user')}) - user = User(id=8, name='fred', + user = User(id=8, name='fred', addresses=[Address(email_address='user')]) merged_user = sess.merge(user) assert merged_user in sess.new @@ -1104,7 +1104,7 @@ class MergeTest(_fixtures.FixtureTest): class M2ONoUseGetLoadingTest(fixtures.MappedTest): - """Merge a one-to-many. The many-to-one on the other side is set up + """Merge a one-to-many. The many-to-one on the other side is set up so that use_get is False. See if skipping the "m2o" merge vs. doing it saves on SQL calls. @@ -1113,12 +1113,12 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): Table('user', metadata, - Column('id', Integer, primary_key=True, + Column('id', Integer, primary_key=True, test_needs_autoincrement=True), Column('name', String(50)), ) Table('address', metadata, - Column('id', Integer, primary_key=True, + Column('id', Integer, primary_key=True, test_needs_autoincrement=True), Column('user_id', Integer, ForeignKey('user.id')), Column('email', String(50)), @@ -1137,11 +1137,11 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): user, address = cls.tables.user, cls.tables.address mapper(User, user, properties={ 'addresses':relationship(Address, backref= - backref('user', + backref('user', # needlessly complex primaryjoin so that the # use_get flag is False primaryjoin=and_( - user.c.id==address.c.user_id, + user.c.id==address.c.user_id, user.c.id==user.c.id ) ) @@ -1156,20 +1156,20 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): User, Address = cls.classes.User, cls.classes.Address s = Session() s.add_all([ - User(id=1, name='u1', addresses=[Address(id=1, email='a1'), + User(id=1, name='u1', addresses=[Address(id=1, email='a1'), Address(id=2, email='a2')]) ]) s.commit() # "persistent" - we get at an Address that was already present. - # With the "skip bidirectional" check removed, the "set" emits SQL + # With the "skip bidirectional" check removed, the "set" emits SQL # for the "previous" version in any case, # address.user_id is 1, you get a load. def test_persistent_access_none(self): User, Address = self.classes.User, self.classes.Address s = Session() def go(): - u1 = User(id=1, + u1 = User(id=1, addresses =[Address(id=1), Address(id=2)] ) u2 = s.merge(u1) @@ -1179,7 +1179,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): User, Address = self.classes.User, self.classes.Address s = Session() def go(): - u1 = User(id=1, + u1 = User(id=1, addresses =[Address(id=1), Address(id=2)] ) u2 = s.merge(u1) @@ -1191,7 +1191,7 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): User, Address = self.classes.User, self.classes.Address s = Session() def go(): - u1 = User(id=1, + u1 = User(id=1, addresses =[Address(id=1), Address(id=2)] ) u2 = s.merge(u1) @@ -1210,8 +1210,8 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): User, Address = self.classes.User, self.classes.Address s = Session() def go(): - u1 = User(id=1, - addresses =[Address(id=1), Address(id=2), + u1 = User(id=1, + addresses =[Address(id=1), Address(id=2), Address(id=3, email='a3')] ) u2 = s.merge(u1) @@ -1223,8 +1223,8 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): User, Address = self.classes.User, self.classes.Address s = Session() def go(): - u1 = User(id=1, - addresses =[Address(id=1), Address(id=2), + u1 = User(id=1, + addresses =[Address(id=1), Address(id=2), Address(id=3, email='a3')] ) u2 = s.merge(u1) @@ -1237,8 +1237,8 @@ class M2ONoUseGetLoadingTest(fixtures.MappedTest): class MutableMergeTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): - Table("data", metadata, - Column('id', Integer, primary_key=True, + Table("data", metadata, + Column('id', Integer, primary_key=True, test_needs_autoincrement=True), Column('data', PickleType(comparator=operator.eq)) ) @@ -1265,7 +1265,7 @@ class MutableMergeTest(fixtures.MappedTest): class CompositeNullPksTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): - Table("data", metadata, + Table("data", metadata, Column('pk1', String(10), primary_key=True), Column('pk2', String(10), primary_key=True), ) @@ -1334,7 +1334,7 @@ class LoadOnPendingTest(fixtures.MappedTest): r = self.classes.Rock(id=0, description='moldy') r.bug = bug m = self.sess.merge(r) - # we've already passed ticket #2374 problem since merge() returned, + # we've already passed ticket #2374 problem since merge() returned, # but for good measure: assert m is not r eq_(m,r) @@ -1354,13 +1354,13 @@ class LoadOnPendingTest(fixtures.MappedTest): self._merge_delete_orphan_o2o_with(self.classes.Bug(id=1)) class PolymorphicOnTest(fixtures.MappedTest): - """Test merge() of polymorphic object when polymorphic_on + """Test merge() of polymorphic object when polymorphic_on isn't a Column""" @classmethod def define_tables(cls, metadata): Table('employees', metadata, - Column('employee_id', Integer, primary_key=True, + Column('employee_id', Integer, primary_key=True, test_needs_autoincrement=True), Column('type', String(1), nullable=False), Column('data', String(50)), @@ -1376,9 +1376,9 @@ class PolymorphicOnTest(fixtures.MappedTest): pass def _setup_polymorphic_on_mappers(self): - employee_mapper = mapper(self.classes.Employee, + employee_mapper = mapper(self.classes.Employee, self.tables.employees, - polymorphic_on=case(value=self.tables.employees.c.type, + polymorphic_on=case(value=self.tables.employees.c.type, whens={ 'E': 'employee', 'M': 'manager', @@ -1398,7 +1398,7 @@ class PolymorphicOnTest(fixtures.MappedTest): """ self._setup_polymorphic_on_mappers() - m = self.classes.Manager(employee_id=55, type='M', + m = self.classes.Manager(employee_id=55, type='M', data='original data') self.sess.add(m) self.sess.commit() @@ -1407,7 +1407,7 @@ class PolymorphicOnTest(fixtures.MappedTest): m = self.classes.Manager(employee_id=55, data='updated data') merged = self.sess.merge(m) - # we've already passed ticket #2449 problem since + # we've already passed ticket #2449 problem since # merge() returned, but for good measure: assert m is not merged eq_(m,merged) |
