Hello.

> I can guarantee you all SQL goes through the same channels.

No doubts there :-)


> perhaps you registered the event with a specific Engine or Connection that is
not the one involved in the test.

This might be it, but I don't know what should I supply instead. I have the
following setUp:

class DbTestCase(object):
    def setUp(self):
        self.Base = create_base()
        self._create_db()
        self.connection = self.engine.connect()
        self.trans = self.connection.begin()
        self.session = Session(bind=self.connection, autoflush=False)
        self._sql_emitters = set()
        event.listen(
            self.engine,
            "before_cursor_execute",
            self._before_cursor_execute
        )

I have tried every object (and its type) present in the setUp method, but all
fail with

    InvalidRequestError: No such event 'before_cursor_execute' for target...

self.engine and type(self.engine) are the only two objects that event.listen is
happy with. Unfortunately NONE of them works for queries that use self.session.

I have no idea how to proceed so any help or hint is much appreciated.


Thank you in advance,

Ladislav Lenart


On 26.9.2012 16:41, Michael Bayer wrote:
> 
> On Sep 26, 2012, at 5:55 AM, Ladislav Lenart wrote:
> 
>> Hello.
>>
>> This is great! Unfortunately it does not work for me.
>>
>> First, the "cursor_execute" event does not exist (at least in SA 0.7.X).
> 
> right, "before_cursor_execute", sorry.
> 
>> I found
>> "before_cursor_execute" which has equivalent signature. I debugged it and:
>> * My callback function is successfully registered.
>> * It is called for statements like DROP TABLE, CREATE TABLE and also for each
>> select from a pg tables (I use postgres).
>> * However, it is NOT called for ANY q.all() or foo.bar where both emit SELECT
>> statements. Note that when these calls are made, the callback function that
>> worked so far is still registered...
>>
>> Do you have any idea what could be wrong?
> 
> perhaps you registered the event with a specific Engine or Connection that is 
> not the one involved in the test.   I can guarantee you all SQL goes through 
> the same channels.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to