|
|
# encoding: utf-8
|
|
|
|
|
|
"""This file contains unittests for the interpreter.py module."""
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Copyright (C) 2008-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
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
# Tell nose to skip this module
|
|
|
__test__ = {}
|
|
|
|
|
|
from twisted.trial import unittest
|
|
|
from IPython.kernel.core.interpreter import Interpreter
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Tests
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
class TestInterpreter(unittest.TestCase):
|
|
|
|
|
|
def test_unicode(self):
|
|
|
""" Test unicode handling with the interpreter."""
|
|
|
i = Interpreter()
|
|
|
i.execute_python(u'print "ù"')
|
|
|
i.execute_python('print "ù"')
|
|
|
|
|
|
def test_ticket266993(self):
|
|
|
""" Test for ticket 266993."""
|
|
|
i = Interpreter()
|
|
|
i.execute('str("""a\nb""")')
|
|
|
|
|
|
def test_ticket364347(self):
|
|
|
"""Test for ticket 364347."""
|
|
|
i = Interpreter()
|
|
|
i.split_commands('str("a\\nb")')
|
|
|
|
|
|
def test_split_commands(self):
|
|
|
""" Test that commands are indeed individually split."""
|
|
|
i = Interpreter()
|
|
|
test_atoms = [('(1\n + 1)', ),
|
|
|
('1', '1', ),
|
|
|
]
|
|
|
for atoms in test_atoms:
|
|
|
atoms = [atom.rstrip() + '\n' for atom in atoms]
|
|
|
self.assertEquals(i.split_commands(''.join(atoms)),atoms)
|
|
|
|
|
|
def test_long_lines(self):
|
|
|
""" Test for spurious syntax error created by the interpreter."""
|
|
|
test_strings = [u'( 1 +\n 1\n )\n\n',
|
|
|
u'(1 \n + 1\n )\n\n',
|
|
|
]
|
|
|
i = Interpreter()
|
|
|
for s in test_strings:
|
|
|
i.execute(s)
|
|
|
|
|
|
|