Dieter Maurer wrote:
Tres Seaver wrote at 2009-3-13 16:20 -0400:
... Dieter Maurer wrote:
Tres Seaver wrote at 2009-3-12 14:25 -0400:
... Sorry, I meant "mandatory tests which load ZCML." I'm actually against ever loading ZCML in tests at all. If you ship ZCML, you should test it, no? Not necessarily: in fact, if testing it means that users of my package have to accept a big dogpile of dependencies that they otherwise wouldn't need to, then no.
Your and my quality principles diverge:
If I release a package, then its tests have the verify that the package contents work correctly.
This implies: the tests should cover everything the package delivers including delivered ZCML files and optional features. The tests are my tool (as developper of the package) to help me find and fix errors before the release.
I am completely uninterested to facilitate testing of reduced or otherwise special use of my packages. If the full tests pass then a reduced use should work as well (provided the integrator did everything right). If the user is interested to verify for his own that the tests pass, I expect of him to test the full functionality -- or not use the package at all.
To stress it: the above just describes test requirements -- not "install" requirements. I am ready to support loose install requirements (and use "extras" to support optional features) but I am not ready to invest in loose test requirements.
As a frequent recipient of Tres' wrath when things go untested, I can vouch that Tres is definitely interested in comprehensive test coverage. ;-) I think the point is that some ZCML he ships might be "example" ZCML which he has previously tested interactively. Like, say, a configuration snippet within a README.txt. I think maybe the lesson here is: think very carefully before you release a package with any ZCML in it that you want to be a "library"; if users *need* to load the ZCML, it's probably really not a library, it's probably an application. If you're OK with it being an application, then by all means, you should have automated end-to-end tests. But if you really mean it to be a library, the ZCML should be "advisory" (close to documentation), I don't see a problem with not doing any automated testing of it if that means the package doesn't have inappropriate dependencies. - C