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] <mailto:[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]
    <mailto:[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]
        <mailto:[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]
            <mailto:[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] <mailto:[email protected]>
                https://mail.python.org/mailman/listinfo/pytest-dev




-- Anatoly Bubenkov

-- Jens Hoffmann Softwareentwickler Datamanagement
            billiger.de <http://billiger.de> solute gmbh
            Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 -
            86956-24 <tel:%2B49%20%280%29721%20-%2086956-24> Fax:
            +49 (0)721 - 86956-66
            <tel:%2B49%20%280%29721%20-%2086956-66> E-Mail:
            [email protected] <mailto:[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
        <http://billiger.de> solute gmbh Zeppelinstraße 15 D-76185
        Karlsruhe Tel: +49 (0)721 - 86956-24
        <tel:%2B49%20%280%29721%20-%2086956-24> Fax: +49 (0)721 -
        86956-66 <tel:%2B49%20%280%29721%20-%2086956-66> E-Mail:
        [email protected] <mailto:[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
    <http://billiger.de> solute gmbh Zeppelinstraße 15 D-76185
    Karlsruhe Tel: +49 (0)721 - 86956-24
    <tel:%2B49%20%280%29721%20-%2086956-24> Fax: +49 (0)721 - 86956-66
    <tel:%2B49%20%280%29721%20-%2086956-66> E-Mail: [email protected]
    <mailto:[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

Reply via email to