##// END OF EJS Templates
Experimental patch to keep Trio event loop alive between cells...
Experimental patch to keep Trio event loop alive between cells Run Trio in a background thread and use trio.from_thread.run() to schedule cells in that thread. This exports a nursery object named GLOBAL_NURSERY that client code can use to start background tasks without blocking the completion of the current cell. Co-authored-by: Brian Mackintosh <bcmackintosh@gmail.com>

File last commit:

r25049:e8d8a60c
r25425:f724bc82
Show More
__init__.py
49 lines | 1.7 KiB | text/x-python | PythonLexer
"""Testing support (tools to test IPython itself).
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2009-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
import os
#-----------------------------------------------------------------------------
# Functions
#-----------------------------------------------------------------------------
# User-level entry point for testing
def test(**kwargs):
"""Run the entire IPython test suite.
Any of the options for run_iptestall() may be passed as keyword arguments.
For example::
IPython.test(testgroups=['lib', 'config', 'utils'], fast=2)
will run those three sections of the test suite, using two processes.
"""
# Do the import internally, so that this function doesn't increase total
# import time
from .iptestcontroller import run_iptestall, default_options
options = default_options()
for name, val in kwargs.items():
setattr(options, name, val)
run_iptestall(options)
#-----------------------------------------------------------------------------
# Constants
#-----------------------------------------------------------------------------
# We scale all timeouts via this factor, slow machines can increase it
IPYTHON_TESTING_TIMEOUT_SCALE = float(os.getenv(
'IPYTHON_TESTING_TIMEOUT_SCALE', 1))
# So nose doesn't try to run this as a test itself and we end up with an
# infinite test loop
test.__test__ = False