So I'll give an alternative opinion and say that I don't mind using classes as namespaces for py.test. The simple migration path away from .setup_method() is to create an autouse fixture in the class instead. On 25 Sep 2014 13:21, "Jens Hoffmann" <[email protected]> wrote:
> This gives me a little pain, since I always liked to organize my tests > OO-like, with classes etc; the docs call pytest fixtures: explicit, > modular, scalable; but for me "decorating classes and methods" is a tiny > bit of magic that forces me to leave the pure OO way and to think a little > more functional; > > > Jens > > > On 09/25/2014 02:09 PM, Anatoly Bubenkov wrote: > > the thing is, fixtures have proper dependency injection working > but combing them with oldish setup_ methods doesn't always work properly > out of the box - just because it's impossible to determine the 'right' > order, because there's no 'right' order, it's all up to you to determine > the dependency tree > > On 25 September 2014 14:06, Jens Hoffmann <[email protected]> wrote: > >> okay, I'll kill them... thank you for your quick responses >> >> >> >> On 09/25/2014 02:03 PM, Anatoly Bubenkov wrote: >> >> setup_ methods should just die :) >> use fixtures everywhere instead >> >> On 25 September 2014 14:01, Jens Hoffmann <[email protected]> wrote: >> >>> Okay, writing the example I found out what the actual problem is: >>> >>> >>> In the minimal example the fixture *is* executed, before any test but >>> *after* my test classes setup_method. >>> >>> >>> I though expect that a session fixture is executed also before a classes >>> setup_method (use case: fixture sets up DB, setup_method sets up some >>> tables); >>> >>> >>> Am I wrong? >>> >>> >>> Jens >>> >>> >>> >>> On 09/25/2014 01:18 PM, Anatoly Bubenkov wrote: >>> >>> please upload fully reproducable small example somewhere >>> or, ideally, create a test and have a PR with it >>> >>> On 25 September 2014 13:14, Jens Hoffmann <[email protected]> wrote: >>> >>>> Yes, the directories test and test/module all contain a __init__.py; >>>> sorry, that I didnt mention this important info. >>>> >>>> So from your question I guess that you expect py.test to find and >>>> execute conftest.py in all the cases shown? >>>> >>>> >>>> Jens >>>> >>>> >>>> >>>> On 09/25/2014 01:09 PM, Anatoly Bubenkov wrote: >>>> >>>> did you add __init__.py in all folders? >>>> >>>> On 25 September 2014 12:35, Jens Hoffmann <[email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> >>>>> we are working with pytest 2.6.2 and I run into a problem with my >>>>> conftest session fixture setup. >>>>> >>>>> My project structure looks something like this: >>>>> >>>>> . >>>>> ├── project >>>>> │ └── module >>>>> │ └── foo.py >>>>> └── test >>>>> ├── conftest.py >>>>> └── module >>>>> └── test_foo.py >>>>> >>>>> >>>>> conftest.py contains a single fixture with scope="session" and >>>>> autouse=True, setting up some database that is needed for every single >>>>> unittest. So also test_foo.py depends on that database setup. >>>>> >>>>> Now some py.test runs: >>>>> >>>>> $ py.test >>>>> => conftest.py called, database setup properly, tests pass >>>>> >>>>> $ py.test test/module >>>>> => tests fail, fixture in conftest.py not executed >>>>> >>>>> $ py.test test/module/test_foo.py >>>>> => tests fail, fixture in conftest.py not executed >>>>> >>>>> $ py.test -k MyTestClassContainedInTestFooDotPy >>>>> => tests fail, fixture in conftest.py not executed >>>>> >>>>> >>>>> Now my question/problem: Are all these outcoms expected behaviour? I >>>>> hoped that all the runs would pass, that is execute my session fixture so >>>>> that I wont need to always run my whole test suite. >>>>> >>>>> >>>>> Thank you for your answer, >>>>> Jens >>>>> >>>>> _______________________________________________ >>>>> Pytest-dev mailing list >>>>> [email protected] >>>>> https://mail.python.org/mailman/listinfo/pytest-dev >>>>> >>>> >>>> >>>> >>>> -- >>>> Anatoly Bubenkov >>>> >>>> >>>> -- >>>> Jens Hoffmann Softwareentwickler Datamanagement billiger.de solute >>>> gmbh Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 - 86956-24 >>>> <%2B49%20%280%29721%20-%2086956-24> Fax: +49 (0)721 - 86956-66 >>>> <%2B49%20%280%29721%20-%2086956-66> E-Mail: [email protected] Web: >>>> http://www.billiger.de Geschäftsführer: Lorenz Petersen Sitz: >>>> Karlsruhe Registergericht: Amtsgericht Mannheim Registernummer: HRB 110579 >>>> Umsatzsteueridentifikationsnummer: DE234663798 >>>> http://cdn.billiger.com/static/mail/billiger_today_logo_dunkel_20140911.png >>>> >>> >>> >>> >>> -- >>> Anatoly Bubenkov >>> >>> >>> -- >>> Jens Hoffmann Softwareentwickler Datamanagement billiger.de solute gmbh >>> Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 - 86956-24 >>> <%2B49%20%280%29721%20-%2086956-24> Fax: +49 (0)721 - 86956-66 >>> <%2B49%20%280%29721%20-%2086956-66> E-Mail: [email protected] Web: >>> http://www.billiger.de Geschäftsführer: Lorenz Petersen Sitz: Karlsruhe >>> Registergericht: Amtsgericht Mannheim Registernummer: HRB 110579 >>> Umsatzsteueridentifikationsnummer: DE234663798 >>> http://cdn.billiger.com/static/mail/billiger_today_logo_dunkel_20140911.png >>> >> >> >> >> -- >> Anatoly Bubenkov >> >> >> -- >> Jens Hoffmann Softwareentwickler Datamanagement billiger.de solute gmbh >> Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 - 86956-24 >> <%2B49%20%280%29721%20-%2086956-24> Fax: +49 (0)721 - 86956-66 >> <%2B49%20%280%29721%20-%2086956-66> E-Mail: [email protected] Web: >> http://www.billiger.de Geschäftsführer: Lorenz Petersen Sitz: Karlsruhe >> Registergericht: Amtsgericht Mannheim Registernummer: HRB 110579 >> Umsatzsteueridentifikationsnummer: DE234663798 >> http://cdn.billiger.com/static/mail/billiger_today_logo_dunkel_20140911.png >> > > > > -- > Anatoly Bubenkov > > > -- > Jens Hoffmann Softwareentwickler Datamanagement billiger.de solute gmbh > Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 - 86956-24 Fax: +49 > (0)721 - 86956-66 E-Mail: [email protected] Web: http://www.billiger.de > Geschäftsführer: Lorenz Petersen Sitz: Karlsruhe Registergericht: > Amtsgericht Mannheim Registernummer: HRB 110579 > Umsatzsteueridentifikationsnummer: DE234663798 > http://cdn.billiger.com/static/mail/billiger_today_logo_dunkel_20140911.png > > _______________________________________________ > Pytest-dev mailing list > [email protected] > https://mail.python.org/mailman/listinfo/pytest-dev > >
_______________________________________________ Pytest-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/pytest-dev
