##// END OF EJS Templates
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ...
This is a manual merge of certain things in the ipython1-dev branch, revision 46, into the main ipython branch. This is not a true merge in the formal sense because all history is not coming over with the files. For a detailed history of the added files, please see the ipython1-dev branch or the svn repository on scipy.org that ipython1-dev came from. More specifically, here is what I have done in this commit: 1) Moved the following by hand ipython1.config -> IPython.config ipython1.kernel -> IPython.kernel ipython1.external -> IPython.external ipython1.core -> IPython.kernel.core ipython1.testutils -> IPython.testing ipython1.tools -> IPython.tools 2) Moved IPython.tools.guid -> IPython1.external.guid 3) Renamed: ipython1 -> IPython IPython.core -> IPython.kernel.core IPython.testutils -> IPython.testing 4) Then did a "bzr add" for all the new stuff. That is all folks!

File last commit:

r1234:52b55407
r1234:52b55407
Show More
controllertest.py
101 lines | 3.9 KiB | text/x-python | PythonLexer
# 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
#-------------------------------------------------------------------------------
from twisted.internet import defer
import zope.interface as zi
from IPython.kernel import engineservice as es
from IPython.kernel import error
from IPython.testutils.util import DeferredTestCase
from IPython.kernel.controllerservice import \
IControllerCore
class IControllerCoreTestCase(object):
"""Tests for objects that implement IControllerCore.
This test assumes that self.controller is defined and implements
IControllerCore.
"""
def testIControllerCoreInterface(self):
"""Does self.engine claim to implement IEngineCore?"""
self.assert_(IControllerCore.providedBy(self.controller))
def testIControllerCoreInterfaceMethods(self):
"""Does self.engine have the methods and attributes in IEngireCore."""
for m in list(IControllerCore):
self.assert_(hasattr(self.controller, m))
def testRegisterUnregisterEngine(self):
engine = es.EngineService()
qengine = es.QueuedEngine(engine)
regDict = self.controller.register_engine(qengine, 0)
self.assert_(isinstance(regDict, dict))
self.assert_(regDict.has_key('id'))
self.assert_(regDict['id']==0)
self.controller.unregister_engine(0)
self.assert_(self.controller.engines.get(0, None) == None)
def testRegisterUnregisterMultipleEngines(self):
e1 = es.EngineService()
qe1 = es.QueuedEngine(e1)
e2 = es.EngineService()
qe2 = es.QueuedEngine(e2)
rd1 = self.controller.register_engine(qe1, 0)
self.assertEquals(rd1['id'], 0)
rd2 = self.controller.register_engine(qe2, 1)
self.assertEquals(rd2['id'], 1)
self.controller.unregister_engine(0)
rd1 = self.controller.register_engine(qe1, 0)
self.assertEquals(rd1['id'], 0)
self.controller.unregister_engine(1)
rd2 = self.controller.register_engine(qe2, 0)
self.assertEquals(rd2['id'], 1)
self.controller.unregister_engine(0)
self.controller.unregister_engine(1)
self.assertEquals(self.controller.engines,{})
def testRegisterCallables(self):
e1 = es.EngineService()
qe1 = es.QueuedEngine(e1)
self.registerCallableCalled = ';lkj'
self.unregisterCallableCalled = ';lkj'
self.controller.on_register_engine_do(self._registerCallable, False)
self.controller.on_unregister_engine_do(self._unregisterCallable, False)
self.controller.register_engine(qe1, 0)
self.assertEquals(self.registerCallableCalled, 'asdf')
self.controller.unregister_engine(0)
self.assertEquals(self.unregisterCallableCalled, 'asdf')
self.controller.on_register_engine_do_not(self._registerCallable)
self.controller.on_unregister_engine_do_not(self._unregisterCallable)
def _registerCallable(self):
self.registerCallableCalled = 'asdf'
def _unregisterCallable(self):
self.unregisterCallableCalled = 'asdf'
def testBadUnregister(self):
self.assertRaises(AssertionError, self.controller.unregister_engine, 'foo')