Re: Zope Tests: 10 OK, 4 Failed, 2 Unknown

Lennart Regebro <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <[email protected]>
On Mon, May 3, 2010 at 20:02, Tres Seaver <[email protected]> wrote:
> - - zope.browserpage
> - - zope.viewlet
> - - zope.contentprovider
> - - zope.deferredimport

These tests all fail because as Tres pointed out, Python 2.4 doesn't
set __file__ to the doctest filename in the globals. Zope.browserpage
in turn uses those globals to determine the filename of the
pagetemplate. So, you get an error if you create a browserpage in a
DocTestFile, like so:

  ErrorPage = SimpleViewClass(errorFileName, name='error.html')

Passing in file explicitly solves the problem:

  ErrorPage = SimpleViewClass(errorFileName, name='error.html',
offering={'__file__': 'README.txt'})

The same thing goes for ViewPagetemplateFile, but there it's called
_prefix instead of offering. Yeah, none of those variable names make
sense.
It can also typically be fixed by passing in __file__ explicitly to the doctest:

def test_suite():
    import doctest
    filename = os.path.join(os.pardir, 'namedtemplate.txt')
    return doctest.DocFileSuite(
        filename,
        setUp=pageSetUp, tearDown=zope.component.testing.tearDown,
        globs={'__file__':
os.path.abspath(os.path.join(os.path.dirname(__file__), filename))}
        )

Other options is to make the usage of __file__ lazy, so that it's only
looked up in the globals when accessed. Because I suspect it's not
actually used except when you get errors, but I'm not 100% sure.

So for the time being, I went for passing in __file__ explicitly in
globs.  The tests run under Python 2.4 again.

-- 
Lennart Regebro: Python, Zope, Plone, Grok
http://regebro.wordpress.com/
+33 661 58 14 64
_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.