def append(self, state, value, initiator):
if initiator is not self:
self.get_history(state)._added_items.append(value)
- self.fire_append_event(state, value, self)
+ self.fire_append_event(state, value, initiator)
def remove(self, state, value, initiator):
if initiator is not self:
self.get_history(state)._deleted_items.append(value)
- self.fire_remove_event(state, value, self)
+ self.fire_remove_event(state, value, initiator)
class AppenderQuery(Query):
class DynamicTest(FixtureTest):
keep_mappers = False
- keep_data = True
+ refresh_data = True
def test_basic(self):
mapper(User, users, properties={
def go():
assert [User(id=7, addresses=[Address(id=1, email_address='jack@bean.com')])] == q.filter(User.id==7).all()
self.assert_sql_count(testbase.db, go, 2)
-
+
+ def test_m2m(self):
+ mapper(Order, orders, properties={
+ 'items':relation(Item, secondary=order_items, lazy="dynamic", backref=backref('orders', lazy="dynamic"))
+ })
+ mapper(Item, items)
+
+ sess = create_session()
+ o1 = Order(id=15, description="order 10")
+ i1 = Item(id=10, description="item 8")
+ o1.items.append(i1)
+ sess.save(o1)
+ sess.flush()
+
+ assert o1 in i1.orders.all()
+ assert i1 in o1.items.all()
+
class FlushTest(FixtureTest):
def test_basic(self):
class Fixture(Base):