X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
_pytest
/
??
..
??
__init__.py
(356 B)
??
__pycache__
??
_argcomplete.py
(3.71 KB)
??
_code
??
_io
??
_py
??
_version.py
(160 B)
??
assertion
??
cacheprovider.py
(20.89 KB)
??
capture.py
(33.92 KB)
??
compat.py
(12.89 KB)
??
config
??
debugging.py
(13.18 KB)
??
deprecated.py
(5.36 KB)
??
doctest.py
(25.35 KB)
??
faulthandler.py
(3.04 KB)
??
fixtures.py
(65.51 KB)
??
freeze_support.py
(1.31 KB)
??
helpconfig.py
(8.34 KB)
??
hookspec.py
(31.79 KB)
??
junitxml.py
(25.11 KB)
??
legacypath.py
(16.53 KB)
??
logging.py
(33.23 KB)
??
main.py
(31.73 KB)
??
mark
??
monkeypatch.py
(14.51 KB)
??
nodes.py
(25.94 KB)
??
nose.py
(1.65 KB)
??
outcomes.py
(10.02 KB)
??
pastebin.py
(3.86 KB)
??
pathlib.py
(25.22 KB)
??
py.typed
(0 B)
??
pytester.py
(60.52 KB)
??
pytester_assertions.py
(2.27 KB)
??
python.py
(69.49 KB)
??
python_api.py
(37.5 KB)
??
python_path.py
(709 B)
??
recwarn.py
(10.67 KB)
??
reports.py
(20.35 KB)
??
runner.py
(18.01 KB)
??
scope.py
(2.81 KB)
??
setuponly.py
(3.18 KB)
??
setupplan.py
(1.19 KB)
??
skipping.py
(9.96 KB)
??
stash.py
(2.98 KB)
??
stepwise.py
(4.6 KB)
??
terminal.py
(52.25 KB)
??
threadexception.py
(2.85 KB)
??
timing.py
(375 B)
??
tmpdir.py
(11.43 KB)
??
unittest.py
(14.46 KB)
??
unraisableexception.py
(3.12 KB)
??
warning_types.py
(4.37 KB)
??
warnings.py
(4.95 KB)
Editing: pastebin.py
"""Submit failure or test session information to a pastebin service.""" import tempfile from io import StringIO from typing import IO from typing import Union import pytest from _pytest.config import Config from _pytest.config import create_terminal_writer from _pytest.config.argparsing import Parser from _pytest.stash import StashKey from _pytest.terminal import TerminalReporter pastebinfile_key = StashKey[IO[bytes]]() def pytest_addoption(parser: Parser) -> None: group = parser.getgroup("terminal reporting") group._addoption( "--pastebin", metavar="mode", action="store", dest="pastebin", default=None, choices=["failed", "all"], help="Send failed|all info to bpaste.net pastebin service", ) @pytest.hookimpl(trylast=True) def pytest_configure(config: Config) -> None: if config.option.pastebin == "all": tr = config.pluginmanager.getplugin("terminalreporter") # If no terminal reporter plugin is present, nothing we can do here; # this can happen when this function executes in a worker node # when using pytest-xdist, for example. if tr is not None: # pastebin file will be UTF-8 encoded binary file. config.stash[pastebinfile_key] = tempfile.TemporaryFile("w+b") oldwrite = tr._tw.write def tee_write(s, **kwargs): oldwrite(s, **kwargs) if isinstance(s, str): s = s.encode("utf-8") config.stash[pastebinfile_key].write(s) tr._tw.write = tee_write def pytest_unconfigure(config: Config) -> None: if pastebinfile_key in config.stash: pastebinfile = config.stash[pastebinfile_key] # Get terminal contents and delete file. pastebinfile.seek(0) sessionlog = pastebinfile.read() pastebinfile.close() del config.stash[pastebinfile_key] # Undo our patching in the terminal reporter. tr = config.pluginmanager.getplugin("terminalreporter") del tr._tw.__dict__["write"] # Write summary. tr.write_sep("=", "Sending information to Paste Service") pastebinurl = create_new_paste(sessionlog) tr.write_line("pastebin session-log: %s\n" % pastebinurl) def create_new_paste(contents: Union[str, bytes]) -> str: """Create a new paste using the bpaste.net service. :contents: Paste contents string. :returns: URL to the pasted contents, or an error message. """ import re from urllib.request import urlopen from urllib.parse import urlencode params = {"code": contents, "lexer": "text", "expiry": "1week"} url = "https://bpa.st" try: response: str = ( urlopen(url, data=urlencode(params).encode("ascii")).read().decode("utf-8") ) except OSError as exc_info: # urllib errors return "bad response: %s" % exc_info m = re.search(r'href="/raw/(\w+)"', response) if m: return f"{url}/show/{m.group(1)}" else: return "bad response: invalid format ('" + response + "')" def pytest_terminal_summary(terminalreporter: TerminalReporter) -> None: if terminalreporter.config.option.pastebin != "failed": return if "failed" in terminalreporter.stats: terminalreporter.write_sep("=", "Sending information to Paste Service") for rep in terminalreporter.stats["failed"]: try: msg = rep.longrepr.reprtraceback.reprentries[-1].reprfileloc except AttributeError: msg = terminalreporter._getfailureheadline(rep) file = StringIO() tw = create_terminal_writer(terminalreporter.config, file) rep.toterminal(tw) s = file.getvalue() assert len(s) pastebinurl = create_new_paste(s) terminalreporter.write_line(f"{msg} --> {pastebinurl}")
Upload File
Create Folder