##// END OF EJS Templates
Remove EventManager reset methods, because they violate encapsulation....
Remove EventManager reset methods, because they violate encapsulation. The whole idea of the EventManager is that you can register hooks without worrying about what hooks other pieces of code might be registering. The reset methods violate this separation of concerns, since they will blow away everyone else's hooks too. (See gh-6680 for an example of this breaking things.) Since there is never any safe way to use them, we simply remove them entirely.

File last commit:

r16580:de473a1c
r18547:4043b271
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)