Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > > site-packages > _pytest
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
_code | Directory | - | - | |
_io | Directory | - | - | |
_py | Directory | - | - | |
assertion | Directory | - | - | |
config | Directory | - | - | |
mark | Directory | - | - | |
__init__.py | File | 356 bytes | April 17 2025 13:10:59. | |
_argcomplete.py | File | 3794 bytes | April 17 2025 13:10:59. | |
_version.py | File | 160 bytes | April 17 2025 13:10:59. | |
cacheprovider.py | File | 21392 bytes | April 17 2025 13:10:59. | |
capture.py | File | 34737 bytes | April 17 2025 13:10:59. | |
compat.py | File | 13200 bytes | April 17 2025 13:10:59. | |
debugging.py | File | 13498 bytes | April 17 2025 13:10:59. | |
deprecated.py | File | 5487 bytes | April 17 2025 13:10:59. | |
doctest.py | File | 25961 bytes | April 17 2025 13:10:59. | |
faulthandler.py | File | 3114 bytes | April 17 2025 13:10:59. | |
fixtures.py | File | 67085 bytes | April 17 2025 13:10:59. | |
freeze_support.py | File | 1339 bytes | April 17 2025 13:10:59. | |
helpconfig.py | File | 8538 bytes | April 17 2025 13:10:59. | |
hookspec.py | File | 32558 bytes | April 17 2025 13:10:59. | |
junitxml.py | File | 25716 bytes | April 17 2025 13:10:59. | |
legacypath.py | File | 16929 bytes | April 17 2025 13:10:59. | |
logging.py | File | 34031 bytes | April 17 2025 13:10:59. | |
main.py | File | 32491 bytes | April 17 2025 13:10:59. | |
monkeypatch.py | File | 14857 bytes | April 17 2025 13:10:59. | |
nodes.py | File | 26559 bytes | April 17 2025 13:10:59. | |
nose.py | File | 1688 bytes | April 17 2025 13:10:59. | |
outcomes.py | File | 10256 bytes | April 17 2025 13:10:59. | |
pastebin.py | File | 3949 bytes | April 17 2025 13:10:59. | |
pathlib.py | File | 25824 bytes | April 17 2025 13:10:59. | |
py.typed | File | 0 bytes | April 17 2025 13:10:59. | |
pytester.py | File | 61971 bytes | April 17 2025 13:10:59. | |
pytester_assertions.py | File | 2327 bytes | April 17 2025 13:10:59. | |
python.py | File | 71155 bytes | April 17 2025 13:10:59. | |
python_api.py | File | 38400 bytes | April 17 2025 13:10:59. | |
python_path.py | File | 709 bytes | April 17 2025 13:10:59. | |
recwarn.py | File | 10930 bytes | April 17 2025 13:10:59. | |
reports.py | File | 20840 bytes | April 17 2025 13:10:59. | |
runner.py | File | 18447 bytes | April 17 2025 13:10:59. | |
scope.py | File | 2882 bytes | April 17 2025 13:10:59. | |
setuponly.py | File | 3261 bytes | April 17 2025 13:10:59. | |
setupplan.py | File | 1214 bytes | April 17 2025 13:10:59. | |
skipping.py | File | 10200 bytes | April 17 2025 13:10:59. | |
stash.py | File | 3055 bytes | April 17 2025 13:10:59. | |
stepwise.py | File | 4714 bytes | April 17 2025 13:10:59. | |
terminal.py | File | 53509 bytes | April 17 2025 13:10:59. | |
threadexception.py | File | 2915 bytes | April 17 2025 13:10:59. | |
timing.py | File | 375 bytes | April 17 2025 13:10:59. | |
tmpdir.py | File | 11708 bytes | April 17 2025 13:10:59. | |
unittest.py | File | 14809 bytes | April 17 2025 13:10:59. | |
unraisableexception.py | File | 3191 bytes | April 17 2025 13:10:59. | |
warning_types.py | File | 4474 bytes | April 17 2025 13:10:59. | |
warnings.py | File | 5070 bytes | April 17 2025 13:10:59. |
"""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}")
SILENT KILLER Tool