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