Hello,
I'm writing some functional tests for my TG app and run into a problem.
In setup method, I do the following:
from turbogears import database
database.set_db_uri("sqlite:///:memory:")
This supposed to setup an in-memory test db and allow me to proceed with
"import model" and go on with tests. The problem is that I got "tg_user table
doesn't exist" error. I think that's because of auto-magic creation of identity
tables that identity uses. The following fixes it but it feels very awkward:
from turbogears.identity.soprovider import SqlObjectIdentityProvider
SqlObjectIdentityProvider().create_provider_model()
(I'm using identity framework and my User class is derived from TG_User (I use
TG_Group and TG_Permission as is, if that matters).
All in all, setup method is getting bigger and bigger. Currently I have:
import cherrypy
from turbogears.config import update_config
from turbogears import database
from turbogears.identity.soprovider import SqlObjectIdentityProvider
update_config('bookswap/config.py')
cherrypy.config.update(file='dev.cfg')
database.set_db_uri("sqlite:///:memory:")
SqlObjectIdentityProvider().create_provider_model()
That's just to setup a test env!
It'd be nice to be able to fold this longish setup somehow. Any suggestions?
I'm using nose so maybe moving this to setup_package is a good idea.
P.S.: What's the recommended way to configure logging during the tests?