"""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()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
pytest_tests | Folder | 0755 |
|
|
tests | Folder | 0755 |
|
|
__init__.py | File | 56 B | 0644 |
|
_version.py | File | 22 B | 0644 |
|
extra_packages.py | File | 1.12 KB | 0644 |
|
fake_file.py | File | 44.85 KB | 0644 |
|
fake_filesystem.py | File | 113.95 KB | 0644 |
|
fake_filesystem_shutil.py | File | 3.67 KB | 0644 |
|
fake_filesystem_unittest.py | File | 41.69 KB | 0644 |
|
fake_io.py | File | 5.95 KB | 0644 |
|
fake_open.py | File | 13.07 KB | 0644 |
|
fake_os.py | File | 49.61 KB | 0644 |
|
fake_path.py | File | 17.49 KB | 0644 |
|
fake_pathlib.py | File | 34.06 KB | 0644 |
|
fake_scandir.py | File | 11.06 KB | 0644 |
|
helpers.py | File | 12.87 KB | 0644 |
|
mox3_stubout.py | File | 5.78 KB | 0644 |
|
patched_packages.py | File | 4.3 KB | 0644 |
|
py.typed | File | 68 B | 0644 |
|
pytest_plugin.py | File | 1.7 KB | 0644 |
|