|
Server : LiteSpeed System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64 User : nandedex ( 1060) PHP Version : 8.1.33 Disable Function : NONE Directory : /opt/cloudlinux/venv/lib64/python3.11/site-packages/pyfakefs/ |
"""A pytest plugin for using pyfakefs as a fixture
When pyfakefs is installed, the "fs" fixture becomes available.
:Usage:
def my_fakefs_test(fs):
fs.create_file('/var/data/xx1.txt')
assert os.path.exists('/var/data/xx1.txt')
"""
import py
import pytest
from _pytest import capture
from pyfakefs.fake_filesystem_unittest import Patcher
try:
from _pytest import pathlib
except ImportError:
pathlib = None
Patcher.SKIPMODULES.add(py)
Patcher.SKIPMODULES.add(pytest)
Patcher.SKIPMODULES.add(capture)
if pathlib is not None:
Patcher.SKIPMODULES.add(pathlib)
@pytest.fixture
def fs(request):
"""Fake filesystem."""
if hasattr(request, "param"):
# pass optional parameters via @pytest.mark.parametrize
patcher = Patcher(*request.param)
else:
patcher = Patcher()
patcher.setUp()
yield patcher.fs
patcher.tearDown()
@pytest.fixture(scope="class")
def fs_class(request):
"""Class-scoped fake filesystem fixture."""
if hasattr(request, "param"):
patcher = Patcher(*request.param)
else:
patcher = Patcher()
patcher.setUp()
yield patcher.fs
patcher.tearDown()
@pytest.fixture(scope="module")
def fs_module(request):
"""Module-scoped fake filesystem fixture."""
if hasattr(request, "param"):
patcher = Patcher(*request.param)
else:
patcher = Patcher()
patcher.setUp()
yield patcher.fs
patcher.tearDown()
@pytest.fixture(scope="session")
def fs_session(request):
"""Session-scoped fake filesystem fixture."""
if hasattr(request, "param"):
patcher = Patcher(*request.param)
else:
patcher = Patcher()
patcher.setUp()
yield patcher.fs
patcher.tearDown()