diff --git a/unittests/test_py_introspect.py b/unittests/test_py_introspect.py new file mode 100644 index 00000000..8e2d37a0 --- /dev/null +++ b/unittests/test_py_introspect.py @@ -0,0 +1,21 @@ +import sys +import unittest + +import wx.py.introspect as inrspct + +#--------------------------------------------------------------------------- + +class py_introspect_Tests(unittest.TestCase): + + def test_getAutoCompleteList(self): + # introspect is expecting this! usually inited by wx.py.interpreter + sys.ps2 = '... ' + attributes = inrspct.getAutoCompleteList("wx.") + self.assertTrue(len(attributes) > 100) + + +#--------------------------------------------------------------------------- + + +if __name__ == '__main__': + unittest.main() diff --git a/wx/py/introspect.py b/wx/py/introspect.py index 80a89599..c911f6de 100644 --- a/wx/py/introspect.py +++ b/wx/py/introspect.py @@ -228,11 +228,12 @@ def getRoot(command, terminator=None): command = rtrimTerminus(command, terminator) if terminator == '.': tokens = getTokens(command) - if not tokens: - return '' - if tokens[-1][0] is tokenize.ENDMARKER: + if tokens and tokens[-1][0] is tokenize.ENDMARKER: # Remove the end marker. del tokens[-1] + if tokens and tokens[-1][0] is tokenize.NEWLINE: + # Remove newline. + del tokens[-1] if not tokens: return '' if terminator == '.' and \ @@ -258,7 +259,7 @@ def getRoot(command, terminator=None): tokentype = token[0] tokenstring = token[1] line = token[4] - if tokentype is tokenize.ENDMARKER: + if tokentype in (tokenize.ENDMARKER, tokenize.NEWLINE): continue if PY3 and tokentype is tokenize.ENCODING: line = lastline