##// 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
test_shell.py
66 lines | 2.4 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""This file contains unittests for the shell.py module."""
__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
#-------------------------------------------------------------------------------
import unittest
from IPython.kernel.core import shell
resultKeys = ('commandIndex', 'stdin', 'stdout', 'stderr')
class BasicShellTest(unittest.TestCase):
def setUp(self):
self.s = shell.InteractiveShell()
def testExecute(self):
commands = [(0,"a = 5","",""),
(1,"b = 10","",""),
(2,"c = a + b","",""),
(3,"print c","15\n",""),
(4,"import math","",""),
(5,"2.0*math.pi","6.2831853071795862\n","")]
for c in commands:
result = self.s.execute(c[1])
self.assertEquals(result, dict(zip(resultKeys,c)))
def testPutGet(self):
objs = [10,"hi there",1.2342354,{"p":(1,2)}]
for o in objs:
self.s.put("key",o)
value = self.s.get("key")
self.assertEquals(value,o)
self.assertRaises(TypeError, self.s.put,10)
self.assertRaises(TypeError, self.s.get,10)
self.s.reset()
self.assertRaises(NameError, self.s.get, 'a')
def testUpdate(self):
d = {"a": 10, "b": 34.3434, "c": "hi there"}
self.s.update(d)
for k in d.keys():
value = self.s.get(k)
self.assertEquals(value, d[k])
self.assertRaises(TypeError, self.s.update, [1,2,2])
def testCommand(self):
self.assertRaises(IndexError,self.s.getCommand)
self.s.execute("a = 5")
self.assertEquals(self.s.getCommand(), dict(zip(resultKeys, (0,"a = 5","",""))))
self.assertEquals(self.s.getCommand(0), dict(zip(resultKeys, (0,"a = 5","",""))))
self.s.reset()
self.assertEquals(self.s.getLastCommandIndex(),-1)
self.assertRaises(IndexError,self.s.getCommand)