##// END OF EJS Templates
Explicitly set the current working directory when running tests...
Explicitly set the current working directory when running tests Because of the profile directory searching algorithm, if the current working directory has a directory named 'profile_default', that will be used instead of the temporary profile directory the tests expect.

File last commit:

r16580:de473a1c
r17469:70f5afef
Show More
test_tokenutil.py
63 lines | 1.7 KiB | text/x-python | PythonLexer
"""Tests for tokenutil"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import nose.tools as nt
from IPython.utils.tokenutil import token_at_cursor
def expect_token(expected, cell, cursor_pos):
token = token_at_cursor(cell, cursor_pos)
offset = 0
for line in cell.splitlines():
if offset + len(line) >= cursor_pos:
break
else:
offset += len(line)
column = cursor_pos - offset
line_with_cursor = '%s|%s' % (line[:column], line[column:])
line
nt.assert_equal(token, expected,
"Excpected %r, got %r in: %s" % (
expected, token, line_with_cursor)
)
def test_simple():
cell = "foo"
for i in range(len(cell)):
expect_token("foo", cell, i)
def test_function():
cell = "foo(a=5, b='10')"
expected = 'foo'
for i in (6,7,8,10,11,12):
expect_token("foo", cell, i)
def test_multiline():
cell = '\n'.join([
'a = 5',
'b = hello("string", there)'
])
expected = 'hello'
start = cell.index(expected)
for i in range(start, start + len(expected)):
expect_token(expected, cell, i)
expected = 'there'
start = cell.index(expected)
for i in range(start, start + len(expected)):
expect_token(expected, cell, i)
def test_attrs():
cell = "foo(a=obj.attr.subattr)"
expected = 'obj'
idx = cell.find('obj')
for i in range(idx, idx + 3):
expect_token(expected, cell, i)
idx = idx + 4
expected = 'obj.attr'
for i in range(idx, idx + 4):
expect_token(expected, cell, i)
idx = idx + 5
expected = 'obj.attr.subattr'
for i in range(idx, len(cell)):
expect_token(expected, cell, i)