-----BEGIN PGP SIGNED MESSAGE-----
Paul Winkler wrote:
> On Thu, Apr 06, 2006 at 11:17:20AM +0200, Stefan H. Holek wrote:
>>For the record: I am still opposed to this change. It basically
>>endows the request (as in self.REQUEST) with a getPhysicalPath
>>method, and I have no idea what kind of side-effects this may have.
> That's because there aren't any ;-)
> The only way you can ever hit REQUEST.getPhysicalPath is if
> you specifically ask for it, which is obviously stupid; or if
> the object you're wrapping doesn't terminate getPhysicalPath().
>>AFAICS your test suite is the only suite around that wants to request-
>>wrap non-root objects.
> I'd reprhase that as "... wants to request-wrap non-Zope2.app()
> FWIW, I didn't write it, and at the time those tests were added,
> I believe they worked. This was using zope 2.8.something.
> I know who originally added those tests,
That would be me. I don't see anything wrong with using a non-Zope2-app
object for unit testing: in fact, I think it is *superior* practice.
Most tests don't need to have the whole shooting match of the Zope
startup dance done, and in fact will be better unit tests if they are
tested *outside* of that environment.
> I was hired several months later and discovered some apparent bit-rot in
> our test suite, i.e. a number of failures and errors, and one of the
> principal points of failure was the issue we're discussing.
> I'm not sure, but I'm guessing that the calls to getPhysicalPath() in
> our app were added later, and whoever did that must've punted on
> figuring out the resulting test issues.
I think you will see lots of usage of the pattern in CMF and related
products: the RequestTest and SecurityRequestTest base classes from
CMFCore are used *everywhere*. The only caveat is that, if your tests
*needs* to call 'getPhysicalPath' and get a "realistic" value, you need
to ensure that the object used as the root does the Right Thing (TM).
>>There's nothing wrong with using your own
>>makerequest for your own test suite, if this is what you want. But I
>>don't think your use-case warrants changing Zope.
> Noted, and that's a reasonable position. Does nobody else care?
I don't beleive that "must be a Zope2.app()" is a real part of the
contract of 'makerequest': "must be able to emulate one well enough for
the rest of the test to succeed" is.
> Using an Item or Folder as your root object for tests works fine except for
> this one issue, so why not allow that?
> My feeling is that setting up an app is unnecessary work when you
> don't need one; for one thing, your test module needs to call
> Zope2.startup() first; for another, afaict creating a Zope2.app is
> a couple orders of magnitude slower than creating a SimpleItem.
> So maybe more people *should* use makerequest(NotAnApp) ;-)
Tres Seaver +1 202-558-7113 [EMAIL PROTECTED]
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -