[py-dev] naming issues (was: Re: new resource API nearing completion)

holger krekel holger at merlinux.eu
Fri Aug 3 09:28:46 CEST 2012


On Thu, Aug 02, 2012 at 19:47 +0100, Floris Bruynooghe wrote:
> On 2 August 2012 18:24, holger krekel <holger at merlinux.eu> wrote:
> > On Thu, Aug 02, 2012 at 13:50 +0100, Floris Bruynooghe wrote:
> >> @pytest.factory(scope='session')
> >> def pytest_funcarg__foo():
> >>     return 42
> >>
> >> Would it not make sense to allow this (or at least provide a clearer
> >> error)?  I still like that form because of the grep-ability (doing a
> >> 2-line grep is much harder and would still not cover ppl doing "from
> >> pytest import factory" etc).
> >
> > Grepability is an argument.  Would adding a "name=..." parameter for
> > the factory-decorator help enough?  Allowing and advertising
> > pytest_funcarg__foo feels strange to somehow taking a fresh look i think.
> 
> I would argue the opposite, allowing the @factory decroator on
> pytest_funcarg__* seems like a more gentle progression giving more the
> impression that it is simply funcargs evolved.  To a newcomer it might
> otherwise look like funcargs where not thought out fully yet and make
> them think py.test just isn't stable enough yet.

If we are to optionally allow pytest_funcarg__ naming with @pytest.factory
i wonder if renaming @pytest.factory to @pytest.funcarg would make sense 
and contribute to the notion that pytest-2.3 just extends funcarg
facilities.  The reason i favored @factory is that it really marks a
factory function whereas "funcarg" more denotes the argument in a test
or setup function.  Moreover, the pytest-2.2 documentation already talked 
about factories when refering to pytest_funcarg__ functions.
(And @funcargfactory seems a tad long to me).

However, i can't claim to have much of an outside view so i am interested
in your and other opinions.

best,
holger





> 
> >> Also doing this results in setup_module being called twice:
> >>
> >> @pytest.setup(scope='module')
> >> def setup_module():
> >>     print 'setting up module'
> >>
> >> I'm not sure what the correct behaviour should be here.
> >
> > Hum, I think the decorator "consumes" the function and it should not
> > be considered for anything else. Do you agree?
> 
> Yes, that's probably the best option.
> 
> 
> Regards,
> Floris
> _______________________________________________
> py-dev mailing list
> py-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/py-dev
> 



More information about the Pytest-dev mailing list