##// END OF EJS Templates
Complete implementation of interactive traceback support....
Complete implementation of interactive traceback support. Ever since IPython started, we've had no proper tracebacks for interactively entered code. The terminal version was fairly uncomfortable for more than just a few lines of code, so this was never too big of a deal. But the new architecture allows clients with complex multiline input, and having proper tracebacks becomes now critical for real-world use. Thanks to Robert Kern for key implementation ideas and original patch. Closes gh-177.

File last commit:

r1960:51f38f50
r3175:c94126c2
Show More
test_controllerservice.py
44 lines | 1.4 KiB | text/x-python | PythonLexer
/ IPython / kernel / tests / test_controllerservice.py
# encoding: utf-8
"""This file contains unittests for the kernel.engineservice.py module.
Things that should be tested:
- Should the EngineService return Deferred objects?
- Run the same tests that are run in shell.py.
- Make sure that the Interface is really implemented.
- The startService and stopService methods.
"""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008 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
#-------------------------------------------------------------------------------
# Tell nose to skip this module
__test__ = {}
from twisted.application.service import IService
from IPython.kernel.controllerservice import ControllerService
from IPython.kernel.tests import multienginetest as met
from controllertest import IControllerCoreTestCase
from IPython.testing.util import DeferredTestCase
class BasicControllerServiceTest(DeferredTestCase,
IControllerCoreTestCase):
def setUp(self):
self.controller = ControllerService()
self.controller.startService()
def tearDown(self):
self.controller.stopService()