/opt/imh-python/lib/python3.9/site-packages/IPython
NameSizeModeActions
core/-0755rm
extensions/-0755rm
external/-0755rm
lib/-0755rm
sphinxext/-0755rm
terminal/-0755rm
testing/-0755rm
utils/-0755rm
__pycache__/-0755rm
conftest.py26180644editdlrm
consoleapp.py4150644editdlrm
display.py14970644editdlrm
paths.py43350644editdlrm
py.typed00644editdlrm
__init__.py65510644editdlrm
__main__.py4900644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/IPython/conftest.py (2618B)
import builtins import inspect import os import pathlib import shutil import sys import types import pytest # Must register before it gets imported pytest.register_assert_rewrite("IPython.testing.tools") from .testing import tools def pytest_collection_modifyitems(items): """This function is automatically run by pytest passing all collected test functions. We use it to add asyncio marker to all async tests and assert we don't use test functions that are async generators which wouldn't make sense. """ for item in items: if inspect.iscoroutinefunction(item.obj): item.add_marker("asyncio") assert not inspect.isasyncgenfunction(item.obj) def get_ipython(): from .terminal.interactiveshell import TerminalInteractiveShell if TerminalInteractiveShell._instance: return TerminalInteractiveShell.instance() config = tools.default_config() config.TerminalInteractiveShell.simple_prompt = True # Create and initialize our test-friendly IPython instance. shell = TerminalInteractiveShell.instance(config=config) return shell @pytest.fixture(scope='session', autouse=True) def work_path(): path = pathlib.Path("./tmp-ipython-pytest-profiledir") os.environ["IPYTHONDIR"] = str(path.absolute()) if path.exists(): raise ValueError('IPython dir temporary path already exists ! Did previous test run exit successfully ?') path.mkdir() yield shutil.rmtree(str(path.resolve())) def nopage(strng, start=0, screen_lines=0, pager_cmd=None): if isinstance(strng, dict): strng = strng.get("text/plain", "") print(strng) def xsys(self, cmd): """Replace the default system call with a capturing one for doctest. """ # We use getoutput, but we need to strip it because pexpect captures # the trailing newline differently from commands.getoutput print(self.getoutput(cmd, split=False, depth=1).rstrip(), end="", file=sys.stdout) sys.stdout.flush() # for things to work correctly we would need this as a session fixture; # unfortunately this will fail on some test that get executed as _collection_ # time (before the fixture run), in particular parametrized test that contain # yields. so for now execute at import time. #@pytest.fixture(autouse=True, scope='session') def inject(): builtins.get_ipython = get_ipython builtins._ip = get_ipython() builtins.ip = get_ipython() builtins.ip.system = types.MethodType(xsys, ip) builtins.ip.builtin_trap.activate() from .core import page page.pager_page = nopage # yield inject()