X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/testfixtures
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
testfixtures
/
??
..
??
__init__.py
(1.19 KB)
??
__pycache__
??
comparison.py
(39.14 KB)
??
compat.py
(224 B)
??
components.py
(1.31 KB)
??
datetime.py
(24.42 KB)
??
django.py
(2.88 KB)
??
logcapture.py
(10.75 KB)
??
mock.py
(1.21 KB)
??
outputcapture.py
(4.69 KB)
??
popen.py
(9.89 KB)
??
replace.py
(12.15 KB)
??
resolve.py
(2.05 KB)
??
rmtree.py
(2.52 KB)
??
shouldraise.py
(3.58 KB)
??
shouldwarn.py
(2.21 KB)
??
sybil.py
(2.28 KB)
??
tempdirectory.py
(12.89 KB)
??
tests
??
twisted.py
(4.8 KB)
??
utils.py
(2.74 KB)
??
version.txt
(6 B)
Editing: sybil.py
import os import re import textwrap from sybil import Region, Example, Document from testfixtures import diff FILEBLOCK_START = re.compile(r'^\.\.\s*topic::?\s*(.+)\b', re.MULTILINE) FILEBLOCK_END = re.compile(r'(\n\Z|\n(?=\S))') CLASS = re.compile(r'\s+:class:\s*(read|write)-file') class FileBlock(object): def __init__(self, path, content, action): self.path, self.content, self.action = path, content, action class FileParser(object): """ A `Sybil <http://sybil.readthedocs.io>`__ parser that parses certain ReST sections to read and write files in the configured :class:`~testfixtures.TempDirectory`. :param name: This is the name of the :class:`~testfixtures.TempDirectory` to use in the Sybil test namespace. """ def __init__(self, name: str): self.name = name def __call__(self, document: Document): for start_match, end_match, source in document.find_region_sources( FILEBLOCK_START, FILEBLOCK_END ): lines = source.splitlines() class_ = CLASS.match(lines[1]) if not class_: continue index = 3 if lines[index].strip() == '::': index += 1 source = textwrap.dedent('\n'.join(lines[index:])).lstrip() if source[-1] != '\n': source += '\n' parsed = FileBlock( path=start_match.group(1), content=source, action=class_.group(1) ) yield Region( start_match.start(), end_match.end(), parsed, self.evaluate ) def evaluate(self, example: Example): block: FileBlock = example.parsed dir = example.namespace[self.name] if block.action == 'read': actual = dir.read(block.path, 'ascii').replace(os.linesep, '\n') if actual != block.content: return diff( block.content, actual, 'File %r, line %i:' % (example.path, example.line), 'Reading from "%s":' % dir.as_string(block.path) ) if block.action == 'write': dir.write(block.path, block.content, 'ascii')
Upload File
Create Folder