On Tue, Dec 18, 2012 at 21:11 +0100, Floris Bruynooghe wrote:
> On 16 December 2012 12:23, holger krekel <[email protected]> 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
[email protected]
http://codespeak.net/mailman/listinfo/py-dev