diff --git a/IPython/frontend/qt/console/tests/__init__.py b/IPython/frontend/qt/console/tests/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/IPython/frontend/qt/console/tests/__init__.py diff --git a/IPython/frontend/qt/console/tests/test_completion_lexer.py b/IPython/frontend/qt/console/tests/test_completion_lexer.py new file mode 100644 index 0000000..4ee37d5 --- /dev/null +++ b/IPython/frontend/qt/console/tests/test_completion_lexer.py @@ -0,0 +1,38 @@ +# Standard library imports +import unittest + +# System library imports +from pygments.lexers import CLexer, CppLexer, PythonLexer + +# Local imports +from IPython.frontend.qt.console.completion_lexer import CompletionLexer + + +class TestCompletionLexer(unittest.TestCase): + + def testPython(self): + """ Does the CompletionLexer work for Python? + """ + lexer = CompletionLexer(PythonLexer()) + + self.assertEquals(lexer.get_context("foo.bar.baz"), + [ "foo", "bar", "baz" ]) + self.assertEquals(lexer.get_context("foo.bar."), [ "foo", "bar", "" ]) + + self.assertEquals(lexer.get_context(">>> foo.bar.baz"), + [ "foo", "bar", "baz" ]) + self.assertEquals(lexer.get_context("foo.bar. baz"), [ "baz" ]) + + def testC(self): + """ Does the CompletionLexer work for C/C++? + """ + lexer = CompletionLexer(CLexer()) + self.assertEquals(lexer.get_context("foo.bar"), [ "foo", "bar" ]) + self.assertEquals(lexer.get_context("foo->bar"), [ "foo", "bar" ]) + + lexer = CompletionLexer(CppLexer()) + self.assertEquals(lexer.get_context("Foo::Bar"), [ "Foo", "Bar" ]) + + +if __name__ == '__main__': + unittest.main()