You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Originally reported by: Mark Stacey (BitBucket: Gudahtt, GitHub: Gudahtt)
The fixture documentation briefly mentions the possibility of a fixture with class scope in the beginning summary, but it isn't mentioned anywhere else in the document. I had to check the source code to see if this was possible.
Also, I didn't see any mention that the default scope was "function" - it was implied, but not explicit.
I think it would be helpful to include a full list of available scopes, and to explicitly say that function scope is default. Both of these things are included in the docstring for the fixture function in the source code:
#!python
:arg scope: the scope for which this fixture is shared, one of
"function" (default), "class", "module", "session".
Original comment bySorin Sbarnea (BitBucket: sorin, GitHub: sorin):
I don't know I I should raise this as a different bug or keep it here. I wasn't able to find a solution for this in the documentaiton. I do have a set of unittests written using the python's unittest module. They are using the setUpModule() function to load a global variable with the shared "stuff" that is required to run the tests (including some http sesions).
When run normally my tests was running fine but with py.test they are failing. I patched it a little bit to make it run using the old pytest fixture functions (which happen not to have same names as unittest ones). Worked but only when not executed on multiple threads, and that's a feature I do want to use.
The documentation examples are useless in my case because I do have like 20 classes (unittest.TestCase) with 10 tests inside each class. Obviously I do not want to add a new parameter to each test.
Until now I used the class setUp() method to load the shared dictionare inside self.
Extending the previous example, we can add a scope='module' parameter to the @pytest.fixture invocation to cause the decorated smtp fixture function's default behaviour of invoking once per function, to instead only be invoked once per test module.
Activity
pytestbot commentedon Jul 19, 2014
Original comment by yuliang shao (BitBucket: markshao, GitHub: markshao):
agree to enhance the documentation
pytestbot commentedon Jul 19, 2014
Original comment by Sorin Sbarnea (BitBucket: sorin, GitHub: sorin):
I don't know I I should raise this as a different bug or keep it here. I wasn't able to find a solution for this in the documentaiton. I do have a set of unittests written using the python's unittest module. They are using the setUpModule() function to load a global variable with the shared "stuff" that is required to run the tests (including some http sesions).
When run normally my tests was running fine but with py.test they are failing. I patched it a little bit to make it run using the old pytest fixture functions (which happen not to have same names as unittest ones). Worked but only when not executed on multiple threads, and that's a feature I do want to use.
The documentation examples are useless in my case because I do have like 20 classes (unittest.TestCase) with 10 tests inside each class. Obviously I do not want to add a new parameter to each test.
Until now I used the class setUp() method to load the shared dictionare inside self.
pytestbot commentedon Jul 20, 2014
Original comment by holger krekel (BitBucket: hpk42, GitHub: hpk42):
On Sat, Jul 19, 2014 at 07:49 -0000, yuliang shao wrote:
If someone can submit a PR for enhanced docs, i'd happily review and merge
them.
best,
holger
DuncanBetts commentedon Nov 26, 2016
I've read the documentation, and think the Sharing a fixture across tests in a module (or class/session) section makes this clear enough. Otherwise (this is a rough draft) how about:
nicoddemus commentedon Nov 26, 2016
Where would you add that paragraph @DuncanBetts? Perhaps we can discuss this over the PR itself? 😁
bilderbuchi commentedon Oct 16, 2017
I plan to take care of this issue. Most of it has been added to the docs in the meantime, just needs some rounding out of the relevant sections.
nicoddemus commentedon Oct 17, 2017
Awesome @bilderbuchi, thanks!
Clarify the documentation of fixture scopes. Closes pytest-dev#538.
Clarify the documentation of fixture scopes. Closes pytest-dev#538.
bilderbuchi commentedon Oct 17, 2017
Done, see #2848.