test_shell.py
66 lines
| 2.4 KiB
| text/x-python
|
PythonLexer
Brian E Granger
|
r1234 | # 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) | |||