On Wed, Jan 22, 2014 at 5:38 PM, Saint Germain <[email protected]> wrote:

> On Wed, 22 Jan 2014 17:29:41 -0800, Ryan Ollos
> <[email protected]> wrote :
>
> > On Wed, Jan 22, 2014 at 5:22 PM, Saint Germain <[email protected]>
> > wrote:
> >
> > >
> > >
> > > On Wed, 22 Jan 2014 16:45:19 -0800, Ryan Ollos
> > > <[email protected]> wrote :
> > >
> > > > On Wed, Jan 22, 2014 at 4:27 PM, Saint Germain
> > > > <[email protected]> wrote:
> > > >
> > > > > On Mon, 20 Jan 2014 00:10:55 -0500, Olemis Lang
> > > > > <[email protected]> wrote :
> > > > >
> > > > > > >
> > > > > > > Currently on trunk I got a lot of similar mistakes when
> > > > > > > running the test on bloodhound_search like this one:
> > > > > > >
> > > > > > >
> > > ======================================================================
> > > > > > > ERROR: test_admin_granted_in_product_should_not_have_access
> > > > > > > (bhsearch.tests.security.MultiProductSecurityTestCase)
> > > > > > >
> > > ----------------------------------------------------------------------
> > > > > > > Traceback (most recent call last):
> > > > > > [...]
> > > > > > > OperationalError: duplicate column name: product
> > > > > > >
> > > > > > > Does that ring a bell to someone ?
> > > > > > >
> > > > > >
> > > > > > It looks ok to me , see http://pastebin.com/kxvua4TU
> > > > > >
> > > > >
> > > > > Hello !
> > > > >
> > > > > I found the problem.
> > > > >
> > > > > In tests/env.py we have:
> > > > > from sqlite3 import OperationalError
> > > > >
> > > > > And in trac/trac/db/sqlite_backend.py we have:
> > > > > try:
> > > > >     import pysqlite2.dbapi2 as sqlite
> > > > >     have_pysqlite = 2
> > > > > except ImportError:
> > > > >     try:
> > > > >         import sqlite3 as sqlite
> > > > >         have_pysqlite = 2
> > > > >     except ImportError:
> > > > >         have_pysqlite = 0
> > > > >
> > > > > As I have both sqlite3 and python-pysqlite2 installed, I got a
> > > > > mismatch when an exception is raised:
> > > > > sqlite3.OperationalError != pysqlite2.dbapi2.OperationalError
> > > > >
> > > > > And the tests cannot run.
> > > > >
> > > > > If I deinstall python-pysqlite2, then the tests can run.
> > > > >
> > > > > Do you think it is necessary to fix this ?
> > > > > In test files we can reproduce the same logic as in the
> > > > > sqlite_backend to correctly import sqlite.
> > > > >
> > > > > Best regards,
> > > > >
> > > > >
> > > > Trac provides an API for working with database exceptions. I
> > > > believe the following patch would be the proper way to handle it.
> > > > Would you kindly test it in your environment?
> > > >
> > > > diff --git a/bloodhound_multiproduct/tests/env.py
> > > > b/bloodhound_multiproduct/tests/env.py
> > > > index 30910e4..98cd1bc 100644
> > > > --- a/bloodhound_multiproduct/tests/env.py
> > > > +++ b/bloodhound_multiproduct/tests/env.py
> > > > @@ -23,7 +23,6 @@ from inspect import stack
> > > >  import os.path
> > > >  import shutil
> > > >  import tempfile
> > > > -from sqlite3 import OperationalError
> > > >  from tests import unittest
> > > >  from types import MethodType
> > > >
> > > > @@ -230,7 +229,7 @@ class MultiproductTestCase(unittest.TestCase):
> > > >          mpsystem = MultiProductSystem(env)
> > > >          try:
> > > >              mpsystem.upgrade_environment(env.db_transaction)
> > > > -        except OperationalError:
> > > > +        except env.db_exc.OperationalError:
> > > >              # Database is upgraded, but database version was
> > > > deleted. # Complete the upgrade by inserting default product.
> > > >              mpsystem._insert_default_product(env.db_transaction)
> > >
> > > Hello !
> > >
> > > Thanks for the patch. I had to propagate the change in order to run
> > > all the tests.
> > >
> >
> > Looks good, thanks for testing. Do you have commit access now? If so,
> > I think you should feel free to go ahead and commit the change.
>
> Unfortunately not, I haven't sent the paperwork to get the commit
> access.
> I _will_ do it tomorrow.
>
> Thanks
>

I committed the change in 1560582. Thanks for finishing up the patch!

Reply via email to