test_ok1/py/test/plugin/pytest_tmpdir.py

36 lines
903 B
Python

"""
example:
pytest_plugins = "pytest_tmpdir"
def test_plugin(tmpdir):
tmpdir.join("hello").write("hello")
"""
import py
class TmpdirPlugin:
""" provide temporary directories to test functions and methods.
"""
def pytest_pyfuncarg_tmpdir(self, pyfuncitem):
name = pyfuncitem.name
return pyfuncitem.config.mktemp(name, numbered=True)
# ===============================================================================
#
# plugin tests
#
# ===============================================================================
#
def test_generic(plugintester):
plugintester.apicheck(TmpdirPlugin)
def test_pyfuncarg(testdir):
item = testdir.getitem("def test_func(tmpdir): pass")
plugin = TmpdirPlugin()
p = plugin.pytest_pyfuncarg_tmpdir(item)
assert p.check()
bn = p.basename.strip("0123456789-")
assert bn.endswith("test_func")