[Sqlalchemy-tickets] [sqlalchemy] #2677: after_attach event is not generated for Session.delete()
Brought to you by:
zzzeek
|
From: sqlalchemy <mi...@zz...> - 2013-03-07 12:55:35
|
#2677: after_attach event is not generated for Session.delete()
--------------------+-----------------------------------------
Reporter: ods | Owner: zzzeek
Type: defect | Status: new
Priority: medium | Milestone:
Component: (none) | Severity: no triage selected yet
Keywords: | Progress State: awaiting triage
--------------------+-----------------------------------------
According to documentation after_attach event should be generated for
`add()`, `merge()`, and `delete()` calls. But the last doesn't work. Here
is a code sample to reproduce the problem:
{{{
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, create_engine, event
from sqlalchemy.orm import sessionmaker, Session
Base = declarative_base()
class Obj(Base):
__tablename__ = 'objs'
id = Column(Integer, primary_key=True)
engine = create_engine('sqlite://', echo=True)
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)()
class EventHandlerIsCalled(Exception): pass
obj = Obj()
session.add(obj)
session.commit()
@event.listens_for(Session, 'after_attach')
def after_attach(session, instance):
raise EventHandlerIsCalled()
try:
session.delete(obj)
except EventHandlerIsCalled:
pass
else:
assert False, 'after_attach event is not generated'
}}}
--
Ticket URL: <http://www.sqlalchemy.org/trac/ticket/2677>
sqlalchemy <http://www.sqlalchemy.org/>
The Database Toolkit for Python
|