blob: 3d3306cdf9e4cb58d436efc25fc27cd419dd9bf5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
"""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 _pytest
import py
import pytest
from pyfakefs.fake_filesystem_unittest import Patcher
Patcher.SKIPMODULES.add(py)
Patcher.SKIPMODULES.add(pytest)
if hasattr(_pytest, "pathlib"):
Patcher.SKIPMODULES.add(_pytest.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()
|