1 new commit in pytest:
https://bitbucket.org/hpk42/pytest/commits/989df06f4c26/
Changeset: 989df06f4c26
User: hpk42
Date: 2013-04-29 10:31:51
Summary: never consider a fixture function for test function collection
Affected #: 4 files
diff -r 375daef33f804b26fdb2e572d1b4fed3e186515b -r
989df06f4c26be6e15cbe52760be670270a806b2 CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,8 +1,10 @@
Changes between 2.3.4 and 2.3.5dev
-----------------------------------
+- never consider a fixture function for test function collection
+
- allow re-running of test items / helps to fix pytest-reruntests plugin
- and also should help to keep less fixture/resource references alive
+ and also help to keep less fixture/resource references alive
- put captured stdout/stderr into junitxml output even for passing tests
(thanks Adam Goucher)
diff -r 375daef33f804b26fdb2e572d1b4fed3e186515b -r
989df06f4c26be6e15cbe52760be670270a806b2 _pytest/python.py
--- a/_pytest/python.py
+++ b/_pytest/python.py
@@ -177,7 +177,8 @@
if collector.classnamefilter(name):
Class = collector._getcustomclass("Class")
return Class(name, parent=collector)
- elif collector.funcnamefilter(name) and hasattr(obj, '__call__'):
+ elif collector.funcnamefilter(name) and hasattr(obj, '__call__') and \
+ getfixturemarker(obj) is None:
if is_generator(obj):
return Generator(name, parent=collector)
else:
@@ -1566,15 +1567,7 @@
continue
# fixture functions have a pytest_funcarg__ prefix (pre-2.3 style)
# or are "@pytest.fixture" marked
- try:
- marker = obj._pytestfixturefunction
- except KeyboardInterrupt:
- raise
- except Exception:
- # some objects raise errors like request (from flask import
request)
- # we don't expect them to be fixture functions
- marker = None
-
+ marker = getfixturemarker(obj)
if marker is None:
if not name.startswith(self._argprefix):
continue
@@ -1771,6 +1764,18 @@
def xunitsetup(obj, name):
meth = getattr(obj, name, None)
- if meth is not None:
- if not hasattr(meth, "_pytestfixturefunction"):
- return meth
+ if getfixturemarker(meth) is None:
+ return meth
+
+def getfixturemarker(obj):
+ """ return fixturemarker or None if it doesn't exist or raised
+ exceptions."""
+ try:
+ return getattr(obj, "_pytestfixturefunction", None)
+ except KeyboardInterrupt:
+ raise
+ except Exception:
+ # some objects raise errors like request (from flask import request)
+ # we don't expect them to be fixture functions
+ return None
+
diff -r 375daef33f804b26fdb2e572d1b4fed3e186515b -r
989df06f4c26be6e15cbe52760be670270a806b2 testing/python/fixture.py
--- a/testing/python/fixture.py
+++ b/testing/python/fixture.py
@@ -1641,6 +1641,20 @@
reprec = testdir.inline_run("-v")
reprec.assertoutcome(passed=6)
+ def test_fixture_marked_function_not_collected_as_test(self, testdir):
+ testdir.makepyfile("""
+ import pytest
+ @pytest.fixture
+ def test_app():
+ return 1
+
+ def test_something(test_app):
+ assert test_app == 1
+ """)
+ reprec = testdir.inline_run()
+ reprec.assertoutcome(passed=1)
+
+
class TestRequestScopeAccess:
pytestmark = pytest.mark.parametrize(("scope", "ok", "error"),[
["session", "", "fspath class function module"],
diff -r 375daef33f804b26fdb2e572d1b4fed3e186515b -r
989df06f4c26be6e15cbe52760be670270a806b2 testing/test_assertion.py
--- a/testing/test_assertion.py
+++ b/testing/test_assertion.py
@@ -101,7 +101,7 @@
def test_frozenzet(self):
expl = callequal(frozenset([0, 1]), set([0, 2]))
- print expl
+ print (expl)
assert len(expl) > 1
def test_list_tuples(self):
Repository URL: https://bitbucket.org/hpk42/pytest/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
pytest-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pytest-commit