##// END OF EJS Templates
More work addressing review comments for Fernando's branch....
More work addressing review comments for Fernando's branch. * :mod:`IPython.testing.globalipapp` now directly creates a :class:`~IPython.core.iplib.InteractiveShell` instance by passing it a configuration object, rather than creating an IPython application. * Updated everything in :mod:`IPython.frontend` and :mod:`IPython.gui` to use raw :class:`~IPython.core.iplib.InteractiveShell directly rather than creating an IPython application. * Updated the IPython sphinx extension to use raw :class:`~IPython.core.iplib.InteractiveShell directly rather than creating an IPython application. * Removed code from :mod:`IPython.extensions.pretty` that called :func:`get_ipython` (r1271). * Addressed comment on (r1284) about holding refs to deferreds in :mod:`IPython.kernel.ipclusterapp`. * Removed :mod:`IPython.kernel` from list of modules tested by nose in :mod:`IPython.testing.iptest`. (r1318)

File last commit:

r2498:3eae1372
r2499:58bf4021
Show More
util.py
65 lines | 2.5 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""This file contains utility classes for performing tests with Deferreds.
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2009 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.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from twisted.trial import unittest
from twisted.internet import defer
#-----------------------------------------------------------------------------
# Classes and functions
#-----------------------------------------------------------------------------
class DeferredTestCase(unittest.TestCase):
def assertDeferredEquals(self, deferred, expectedResult,
chainDeferred=None):
"""Calls assertEquals on the result of the deferred and expectedResult.
chainDeferred can be used to pass in previous Deferred objects that
have tests being run on them. This chaining of Deferred's in tests
is needed to insure that all Deferred's are cleaned up at the end of
a test.
"""
if chainDeferred is None:
chainDeferred = defer.succeed(None)
def gotResult(actualResult):
self.assertEquals(actualResult, expectedResult)
deferred.addCallback(gotResult)
return chainDeferred.addCallback(lambda _: deferred)
def assertDeferredRaises(self, deferred, expectedException,
chainDeferred=None):
"""Calls assertRaises on the Failure of the deferred and expectedException.
chainDeferred can be used to pass in previous Deferred objects that
have tests being run on them. This chaining of Deferred's in tests
is needed to insure that all Deferred's are cleaned up at the end of
a test.
"""
if chainDeferred is None:
chainDeferred = defer.succeed(None)
def gotFailure(f):
#f.printTraceback()
self.assertRaises(expectedException, f.raiseException)
#return f
deferred.addBoth(gotFailure)
return chainDeferred.addCallback(lambda _: deferred)