On Tue, Dec 18, 2012 at 21:11 +0100, Floris Bruynooghe wrote:
> On 16 December 2012 12:23, holger krekel <hol...@merlinux.eu> wrote:
> > Currently, if you define e.g. an autouse fixture function it is going to
> > be called _after_ the xUnit setup functions.  This is especially
> > surprising when you do a session-scoped autouse fixture.  I am wondering
> > if we could reverse the order, i.e. call fixture functions (including
> > autouse-fixtures of course) ahead of xUnit setup methods.
> >
> > any thoughts?
> 
> Agreed, I think it would be a good idea to have at least autouse
> fixtures before the xUnit setup.

However, i realize we also have scopes.  And this is where any attempt 
to decide ordering between pytest versus xUnit fixtures seesm to break down:

- We don't want setup_class execute after a function-scoped pytest fixture.
  
- We don't want class-scoped pytest fixture execute after setup_method.
 
Maybe, we could internally add autouse-fixtures at module/class/function
scope which would look for setupX/teardownX and act accordingly.  This
way xUnit setup/teardown methods would appear as pytest fixtures.
Here is an example how it could look like for a mix of 
xUnit/pytest class/function scoped autouse- and non-autouse fixtures:

    user-function     found by
    --------------------------------------------------------------------------
    ...
    autoclass(...)    # @pytest.fixture(scope="class", autouse=True))
    setup_class(cls)  # internal @pytest.fixture("class", autouse=True)
    clsarg(...)       # @pytest.fixture("class", autouse=False)
    funcfixture(...)  # @pytest.fixture(scope="function", autouse=True)
    setup_method()    # internal @pytest.fixture("function", autouse=True)
    arg1              # @pytest.fixture(scope="function", autouse=False))
    ...
    test_function(arg1, clsarg)
    # teardowns execute in LIFO registration order

Makes sense?

Ideally, we could produce something like the above output with 
some command line option to help debugging.

best,
holger

> Regards,
> Floris
> 
> 
> --
> Debian GNU/Linux -- The Power of Freedom
> www.debian.org | www.gnu.org | www.kernel.org
> 
_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to