Hi Uli, I am happy that some people started to look what is needed to make modular component registrations with py.test.
The long explanation that you wrote made it easy for me to jump into funcargs. Those last months, I have been diving into the great plone.testing package written by Martin Aspeli. Among others, plone.testing has a very nice module zca.py to ease building zope.testing layers that need ZCA. See https://dev.plone.org/plone/browser/plone.testing/trunk/src/plone/testing/zca.py Specifically, pushGlobalRegistry and popGlobalRegistry are a pair of functions that allow to make registrations step by step, while easily throwing away the latest registrations when they are not needed anymore. plone.testing does not depend on Zope2 even if it comes with support for building Zope2 layers. Le 24/03/11 01:05, Uli Fouquet a écrit : > Compared to Zope test layers I came to the conclusion that there is not > much like this concept already in `pytest` and the behaviour of test > layers can not easily be faked. `pytest` provides only the three > mentioned scopes as kind of 'natural' layers. Spreading fixtures over > many modules (as layers easily do) might contradict with the basic > design goals of pytest and I am pretty sure that Holge Krekel wouldn't > like it. I do not agree with that last statement : the fact that resources can be cached during a session allows them to be reused over many modules. IOW, it does not contradict pytest design. Digging into funcargs gives me the feeling that they are much richer than layers. Because funcargs are functions that get access to a lot of context, they allow for more flexibility than layers that are only static resources. > Overall, we're now looking for a satisfying solution in terms of runtime > and isolation. Some of the questions that arise: My feeling is that the extrakey argument of cached_setup can be used in combination with code similar to plone.testing ZCA support to build something "satisfying in terms of runtime and isolation." > > Would it make sense to bring the Zope layer concept into `pytest`? I think what is already available in py.test might avoid the need of layers. > Are there already possibilities to mimic testlayer-like behaviour in > `pytest` which we simply overlooked? See above. > > Are there cheap/fast ways to cache/restore registry setups we hadn't had > on the screen? Really fast setups/cache-restores could make even > function-wise registrations a considerable thing. > > Would it simply be okay to use the 'module' scope for registration > setups? > > Or do you have completely different ideas how to solve that issue? > > Any comments are really appreciated! > > Best regards, > > -- Uli -- Godefroid Chapelle (aka __gotcha) http://bubblenet.be _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org 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 )