##// END OF EJS Templates
Respect DB_IP and DB_PORT in mongodb tests....
Respect DB_IP and DB_PORT in mongodb tests. It is usually preferred to run tests on a test-local database with dedicated mongod instance rather than using the system-wide database. In order to support that, an easy way of providing the proper port is handy. For example, pymongo test suite uses DB_IP and DB_PORT environment variables to allow providing an alternate mongod instance. Using the same variable names in IPython's test suite seems a good idea.

File last commit:

r9244:666fdfa8
r9539:b0f830ff
Show More
nested_context.py
50 lines | 1.5 KiB | text/x-python | PythonLexer
Thomas Kluyver
Backwards compatibility hack to use nested() in Python 3.2
r4751 """Backwards compatibility - we use contextlib.nested to support Python 2.6,
but it's removed in Python 3.2."""
# TODO : Remove this once we drop support for Python 2.6, and use
# "with a, b:" instead.
Thomas Kluyver
Fix for nested()
r4755 import sys
Thomas Kluyver
Backwards compatibility hack to use nested() in Python 3.2
r4751 from contextlib import contextmanager
@contextmanager
def nested(*managers):
"""Combine multiple context managers into a single nested context manager.
This function has been deprecated in favour of the multiple manager form
of the with statement.
The one advantage of this function over the multiple manager form of the
with statement is that argument unpacking allows it to be
Thomas Kluyver
Miscellaneous docs fixes
r9244 used with a variable number of context managers as follows::
Thomas Kluyver
Backwards compatibility hack to use nested() in Python 3.2
r4751
with nested(*managers):
do_something()
"""
exits = []
vars = []
exc = (None, None, None)
try:
for mgr in managers:
exit = mgr.__exit__
enter = mgr.__enter__
vars.append(enter())
exits.append(exit)
yield vars
except:
exc = sys.exc_info()
finally:
while exits:
exit = exits.pop()
try:
if exit(*exc):
exc = (None, None, None)
except:
exc = sys.exc_info()
if exc != (None, None, None):
# Don't rely on sys.exc_info() still containing
# the right information. Another exception may
# have been raised and caught by an exit method
raise exc[0], exc[1], exc[2]