On 2010-12-28 19:16, Chris McDonough wrote:
> On Tue, 2010-12-28 at 15:36 +0100, Wichert Akkerman wrote:
>> I recently refactored a package to move all test infrastructure out of
>> tests/ to testing.py. This has one unfortunate side effect: on installs
>> without test dependencies my app will now no longer start since the
>> venusian scan aborts on test imports in testing.py. Is there a way block
>> venusian from scanning testing.py?
>
> I'm afraid not.  But I'm not sure why it worked under tests/ but not
> under testing.py, as Venusian scans everything?

That turned out to due to some other test refactoring I was doing at the 
same time. It did surprise me to see that venusian was scanning tests; 
somehow that feels undesirable. For reference this is the code that was 
showing this problem:

from wsgi_intercept import zope_testbrowser

class TestBrowser(zope_testbrowser.WSGI_Browser):
     """A test browser which does not check robots.txt."""
     def __init__(self, *args, **kwargs):
         zope_testbrowser.WSGI_Browser.__init__(self, *args, **kwargs)
         self.mech_browser.set_handle_robots(False)


since wsgi_intercept is only a test dependency this caused an 
ImportError. As a workaround I hade to rewrite the code to look like this:

def TestBrowser():
     from wsgi_intercept import zope_testbrowser
     class TestBrowser(zope_testbrowser.WSGI_Browser):
         """A test browser which does not check robots.txt."""
         def __init__(self, *args, **kwargs):
             zope_testbrowser.WSGI_Browser.__init__(self, *args, **kwargs)
             self.mech_browser.set_handle_robots(False)
     return TestBrowser()

this works, but it isn't very pretty.

Wichert.

-- 
Wichert Akkerman <wich...@wiggy.net>   It is simple to make things.
http://www.wiggy.net/                  It is hard to make things simple.
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to