Python pytest.Function() Examples
The following are 30
code examples of pytest.Function().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pytest
, or try the search function
.
Example #1
Source File: pytestplugin.py From jbox with MIT License | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #2
Source File: pytestplugin.py From android_universal with MIT License | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #3
Source File: pytestplugin.py From android_universal with MIT License | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #4
Source File: pytestplugin.py From moviegrabber with GNU General Public License v3.0 | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if item.parent.parent is not _current_class: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... item.parent.parent.addfinalizer(lambda: class_teardown(item.parent.parent)) test_setup(item)
Example #5
Source File: pytestplugin.py From jarvis with GNU General Public License v2.0 | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #6
Source File: pytestplugin.py From sqlalchemy with MIT License | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #7
Source File: pytestplugin.py From stdm with GNU General Public License v2.0 | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if item.parent.parent is not _current_class: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... item.parent.parent.addfinalizer( lambda: class_teardown(item.parent.parent)) test_setup(item)
Example #8
Source File: pytestplugin.py From pyRevit with GNU General Public License v3.0 | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #9
Source File: conftest.py From pytest-ansible with MIT License | 6 votes |
def pytest_runtest_setup(item): # Conditionally skip tests that are pinned to a specific ansible version if isinstance(item, pytest.Function): # conditionally skip if item.get_closest_marker('requires_ansible_v1') and not has_ansible_v1: pytest.skip("requires < ansible-2.*") if item.get_closest_marker('requires_ansible_v2') and has_ansible_v1: pytest.skip("requires >= ansible-2.*") if item.get_closest_marker('requires_ansible_v24') and not has_ansible_v24: pytest.skip("requires >= ansible-2.4.*") if item.get_closest_marker('requires_ansible_v28') and not has_ansible_v24: pytest.skip("requires >= ansible-2.8.*") # conditionally xfail mark = item.get_closest_marker('ansible_v1_xfail') if mark and has_ansible_v1: item.add_marker(pytest.mark.xfail(reason="expected failure on < ansible-2.*", raises=mark.kwargs.get('raises'))) mark = item.get_closest_marker('ansible_v2_xfail') if mark and not has_ansible_v1: item.add_marker(pytest.xfail(reason="expected failure on >= ansible-2.*", raises=mark.kwargs.get('raises')))
Example #10
Source File: pytestplugin.py From planespotter with MIT License | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #11
Source File: pytestplugin.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #12
Source File: pytestplugin.py From jbox with MIT License | 6 votes |
def pytest_runtest_setup(item): # here we seem to get called only based on what we collected # in pytest_collection_modifyitems. So to do class-based stuff # we have to tear that out. global _current_class if not isinstance(item, pytest.Function): return # ... so we're doing a little dance here to figure it out... if _current_class is None: class_setup(item.parent.parent) _current_class = item.parent.parent # this is needed for the class-level, to ensure that the # teardown runs after the class is completed with its own # class-level teardown... def finalize(): global _current_class class_teardown(item.parent.parent) _current_class = None item.parent.parent.addfinalizer(finalize) test_setup(item)
Example #13
Source File: test_collection.py From pytest with MIT License | 6 votes |
def test_getparent(self, testdir): modcol = testdir.getmodulecol( """ class TestClass: def test_foo(self): pass """ ) cls = testdir.collect_by_name(modcol, "TestClass") fn = testdir.collect_by_name(testdir.collect_by_name(cls, "()"), "test_foo") parent = fn.getparent(pytest.Module) assert parent is modcol parent = fn.getparent(pytest.Function) assert parent is fn parent = fn.getparent(pytest.Class) assert parent is cls
Example #14
Source File: test_runner.py From pytest with MIT License | 6 votes |
def test_custom_failure_repr(self, testdir) -> None: testdir.makepyfile( conftest=""" import pytest class Function(pytest.Function): def repr_failure(self, excinfo): return "hello" """ ) reports = testdir.runitem( """ import pytest def test_func(): assert 0 """ ) rep = reports[1] assert not rep.skipped assert not rep.passed assert rep.failed # assert rep.outcome.when == "call" # assert rep.failed.where.lineno == 3 # assert rep.failed.where.path.basename == "test_func.py" # assert rep.failed.failurerepr == "hello"
Example #15
Source File: pytestplugin.py From stdm with GNU General Public License v2.0 | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ name.startswith("test_") and \ isinstance(collector, pytest.Instance): return pytest.Function(name, parent=collector) else: return []
Example #16
Source File: conftest.py From aiomysql with MIT License | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if collector.funcnamefilter(name): if not callable(obj): return item = pytest.Function(name, parent=collector) if 'run_loop' in item.keywords: return list(collector._genfunctions(name, obj))
Example #17
Source File: pytestplugin.py From jbox with MIT License | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ isinstance(collector, pytest.Instance) and \ plugin_base.want_method(collector.cls, obj): return pytest.Function(name, parent=collector) else: return []
Example #18
Source File: pytestplugin.py From android_universal with MIT License | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ isinstance(collector, pytest.Instance) and \ plugin_base.want_method(collector.cls, obj): return pytest.Function(name, parent=collector) else: return []
Example #19
Source File: pytestplugin.py From jbox with MIT License | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ isinstance(collector, pytest.Instance) and \ plugin_base.want_method(collector.cls, obj): return pytest.Function(name, parent=collector) else: return []
Example #20
Source File: pytestplugin.py From android_universal with MIT License | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ isinstance(collector, pytest.Instance) and \ plugin_base.want_method(collector.cls, obj): return pytest.Function(name, parent=collector) else: return []
Example #21
Source File: pytestplugin.py From moviegrabber with GNU General Public License v3.0 | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ name.startswith("test_") and \ isinstance(collector, pytest.Instance): return pytest.Function(name, parent=collector) else: return []
Example #22
Source File: conftest.py From aiohttp_admin with Apache License 2.0 | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if collector.funcnamefilter(name): item = pytest.Function(name, parent=collector) if 'run_loop' in item.keywords: return list(collector._genfunctions(name, obj))
Example #23
Source File: pytestplugin.py From jarvis with GNU General Public License v2.0 | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if inspect.isclass(obj) and plugin_base.want_class(obj): return pytest.Class(name, parent=collector) elif inspect.isfunction(obj) and \ isinstance(collector, pytest.Instance) and \ plugin_base.want_method(collector.cls, obj): return pytest.Function(name, parent=collector) else: return []
Example #24
Source File: conftest.py From aiomcache with BSD 2-Clause "Simplified" License | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if collector.funcnamefilter(name): if not callable(obj): return item = pytest.Function(name, parent=collector) if 'run_loop' in item.keywords: return list(collector._genfunctions(name, obj))
Example #25
Source File: conftest.py From idom with MIT License | 5 votes |
def pytest_collection_modifyitems(items: Iterable[Any]) -> None: for item in items: if isinstance(item, pytest.Function): if inspect.iscoroutinefunction(item.function): item.add_marker(pytest.mark.asyncio) if "driver" in item.fixturenames: item.add_marker("slow")
Example #26
Source File: plugin.py From pytest-tornado with Apache License 2.0 | 5 votes |
def pytest_pycollect_makeitem(collector, name, obj): if collector.funcnamefilter(name) and inspect.isgeneratorfunction(obj): if _PYTEST_VERSION >= pkg_resources.parse_version("5.4.0"): item = pytest.Function.from_parent(collector, name=name) else: item = pytest.Function(name, parent=collector) if 'gen_test' in item.keywords: return list(collector._genfunctions(name, obj))
Example #27
Source File: test_runner.py From pytest with MIT License | 5 votes |
def test_failure_in_setup_function_ignores_custom_repr(self, testdir) -> None: testdir.makepyfile( conftest=""" import pytest class Function(pytest.Function): def repr_failure(self, excinfo): assert 0 """ ) reports = testdir.runitem( """ def setup_function(func): raise ValueError(42) def test_func(): pass """ ) assert len(reports) == 2 rep = reports[0] print(rep) assert not rep.skipped assert not rep.passed assert rep.failed # assert rep.outcome.when == "setup" # assert rep.outcome.where.lineno == 3 # assert rep.outcome.where.path.basename == "test_func.py" # assert instanace(rep.failed.failurerepr, PythonFailureRepr)
Example #28
Source File: collect.py From pytest with MIT License | 5 votes |
def test_check_equality(self, testdir) -> None: modcol = testdir.getmodulecol( """ def test_pass(): pass def test_fail(): assert 0 """ ) fn1 = testdir.collect_by_name(modcol, "test_pass") assert isinstance(fn1, pytest.Function) fn2 = testdir.collect_by_name(modcol, "test_pass") assert isinstance(fn2, pytest.Function) assert fn1 == fn2 assert fn1 != modcol assert hash(fn1) == hash(fn2) fn3 = testdir.collect_by_name(modcol, "test_fail") assert isinstance(fn3, pytest.Function) assert not (fn1 == fn3) assert fn1 != fn3 for fn in fn1, fn2, fn3: assert fn != 3 # type: ignore[comparison-overlap] # noqa: F821 assert fn != modcol assert fn != [1, 2, 3] # type: ignore[comparison-overlap] # noqa: F821 assert [1, 2, 3] != fn # type: ignore[comparison-overlap] # noqa: F821 assert modcol != fn
Example #29
Source File: conftest.py From chempy with BSD 2-Clause "Simplified" License | 5 votes |
def pytest_runtest_setup(item): if not isinstance(item, pytest.Function): return if not item.config.getvalue("runslow") and hasattr(item.obj, 'slow'): pytest.skip("slow test: pass --slow to run") if not item.config.getvalue("runveryslow") and hasattr( item.obj, 'veryslow'): pytest.skip("very slow test: pass --veryslow to run")
Example #30
Source File: conftest.py From InQRy with MIT License | 5 votes |
def pytest_runtest_setup(item): if isinstance(item, pytest.Function): plat = sys.platform if not item.get_marker(plat): if ALL.intersection(item.keywords): pytest.skip("cannot run on platform %s" % (plat))