##// END OF EJS Templates
Ensure handler patterns are str, not unicode...
Ensure handler patterns are str, not unicode Python < 2.6.5 doesn't accept unicode keys in f(**kwargs), and base_project_url will always be unicode, which will in turn make the patterns unicode, and ultimately result in unicode keys in kwargs to handler._execute(**kwargs) in tornado. This enforces that base_project_url be ascii in that situation. Note that the URLs these patterns check against are escaped, and thus guaranteed to be ASCII: 'héllo' is really 'h%C3%A9llo'. If you actually use u'héllo' in your regex, it will not match the URLs you think it should.

File last commit:

r5390:c82649ea
r6067:24a6c071
Show More
test_frontendbase.py
32 lines | 1002 B | text/x-python | PythonLexer
# encoding: utf-8
"""
Test the basic functionality of frontendbase.
"""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008-2011 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.
#-------------------------------------------------------------------------------
from IPython.frontend.frontendbase import FrontEndBase
def test_iscomplete():
""" Check that is_complete works.
"""
f = FrontEndBase()
assert f.is_complete('(a + a)')
assert not f.is_complete('(a + a')
assert f.is_complete('1')
assert not f.is_complete('1 + ')
assert not f.is_complete('1 + \n\n')
assert f.is_complete('if True:\n print 1\n')
assert not f.is_complete('if True:\n print 1')
assert f.is_complete('def f():\n print 1\n')
if __name__ == '__main__':
test_iscomplete()