test_interpreter.py
62 lines
| 2.1 KiB
| text/x-python
|
PythonLexer
gvaroquaux
|
r1643 | # encoding: utf-8 | ||
"""This file contains unittests for the interpreter.py module.""" | ||||
#----------------------------------------------------------------------------- | ||||
Brian Granger
|
r1963 | # 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. | ||||
gvaroquaux
|
r1643 | #----------------------------------------------------------------------------- | ||
Gael Varoquaux
|
r1898 | |||
gvaroquaux
|
r1643 | #----------------------------------------------------------------------------- | ||
Brian Granger
|
r1963 | # Imports | ||
gvaroquaux
|
r1643 | #----------------------------------------------------------------------------- | ||
Brian Granger
|
r1963 | # Tell nose to skip this module | ||
__test__ = {} | ||||
from twisted.trial import unittest | ||||
gvaroquaux
|
r1643 | from IPython.kernel.core.interpreter import Interpreter | ||
Gael Varoquaux
|
r1898 | #----------------------------------------------------------------------------- | ||
Brian Granger
|
r1963 | # Tests | ||
Gael Varoquaux
|
r1898 | #----------------------------------------------------------------------------- | ||
gvaroquaux
|
r1643 | |||
Brian Granger
|
r1946 | class TestInterpreter(unittest.TestCase): | ||
Brian Granger
|
r1949 | |||
Brian Granger
|
r1946 | def test_unicode(self): | ||
Brian Granger
|
r1949 | """ Test unicode handling with the interpreter.""" | ||
Brian Granger
|
r1946 | i = Interpreter() | ||
i.execute_python(u'print "ù"') | ||||
i.execute_python('print "ù"') | ||||
Brian Granger
|
r1949 | |||
Brian Granger
|
r1951 | def test_ticket266993(self): | ||
Brian Granger
|
r1949 | """ Test for ticket 266993.""" | ||
Brian Granger
|
r1946 | i = Interpreter() | ||
i.execute('str("""a\nb""")') | ||||
gvaroquaux
|
r1643 | |||
Brian Granger
|
r1949 | def test_ticket364347(self): | ||
"""Test for ticket 364347.""" | ||||
Brian Granger
|
r1946 | i = Interpreter() | ||
Brian Granger
|
r1951 | i.split_commands('str("a\\nb")') | ||
Brian Granger
|
r1949 | |||
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) | ||||
Gael Varoquaux
|
r1898 | |||