/
usr
/
lib
/
imh-dnskeyapi
/
venv
/
lib
/
python3.13
/
site-packages
/
_pytest
/
/usr/lib/imh-dnskeyapi/venv/lib/python3.13/site-packages/_pytest
mkdir
upload
Name
Size
Mode
Actions
assertion/
-
0755
rm
config/
-
0755
rm
mark/
-
0755
rm
_code/
-
0755
rm
_io/
-
0755
rm
_py/
-
0755
rm
cacheprovider.py
22373
0644
edit
dl
rm
capture.py
35330
0644
edit
dl
rm
compat.py
11467
0644
edit
dl
rm
debugging.py
13260
0644
edit
dl
rm
deprecated.py
3147
0644
edit
dl
rm
doctest.py
26255
0644
edit
dl
rm
faulthandler.py
3674
0644
edit
dl
rm
fixtures.py
73550
0644
edit
dl
rm
freeze_support.py
1291
0644
edit
dl
rm
helpconfig.py
8895
0644
edit
dl
rm
hookspec.py
42831
0644
edit
dl
rm
junitxml.py
25574
0644
edit
dl
rm
legacypath.py
16588
0644
edit
dl
rm
logging.py
35124
0644
edit
dl
rm
main.py
37416
0644
edit
dl
rm
monkeypatch.py
14598
0644
edit
dl
rm
nodes.py
26483
0644
edit
dl
rm
outcomes.py
10532
0644
edit
dl
rm
pastebin.py
3978
0644
edit
dl
rm
pathlib.py
37569
0644
edit
dl
rm
py.typed
0
0644
edit
dl
rm
pytester.py
61552
0644
edit
dl
rm
pytester_assertions.py
2244
0644
edit
dl
rm
python.py
64851
0644
edit
dl
rm
python_api.py
40122
0644
edit
dl
rm
python_path.py
745
0644
edit
dl
rm
recwarn.py
13227
0644
edit
dl
rm
reports.py
21331
0644
edit
dl
rm
runner.py
19436
0644
edit
dl
rm
scope.py
2798
0644
edit
dl
rm
setuponly.py
3306
0644
edit
dl
rm
setupplan.py
1184
0644
edit
dl
rm
skipping.py
10217
0644
edit
dl
rm
stash.py
3090
0644
edit
dl
rm
stepwise.py
4596
0644
edit
dl
rm
terminal.py
57393
0644
edit
dl
rm
threadexception.py
3005
0644
edit
dl
rm
timing.py
413
0644
edit
dl
rm
tmpdir.py
11375
0644
edit
dl
rm
unittest.py
15614
0644
edit
dl
rm
unraisableexception.py
3252
0644
edit
dl
rm
warnings.py
5211
0644
edit
dl
rm
warning_types.py
4388
0644
edit
dl
rm
_argcomplete.py
3776
0644
edit
dl
rm
_version.py
511
0644
edit
dl
rm
__init__.py
391
0644
edit
dl
rm
Edit:
/usr/lib/imh-dnskeyapi/venv/lib/python3.13/site-packages/_pytest/pastebin.py
(3978B)
# mypy: allow-untyped-defs """Submit failure or test session information to a pastebin service.""" from __future__ import annotations from io import StringIO import tempfile from typing import IO 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 import pytest 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(f"pastebin session-log: {pastebinurl}\n") def create_new_paste(contents: 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.parse import urlencode from urllib.request import urlopen 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 f"bad response: {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}")
Save
cmd:
run