From 6c61004e0b04fe3464e34c577f0b9ea2fc0d9c49 2018-05-14 13:37:18 From: Jörg Dietrich Date: 2018-05-14 13:37:18 Subject: [PATCH] add three tests for cell magic syntax highlighting --- diff --git a/IPython/lib/tests/test_lexers.py b/IPython/lib/tests/test_lexers.py index bb2de2e..efa00d6 100644 --- a/IPython/lib/tests/test_lexers.py +++ b/IPython/lib/tests/test_lexers.py @@ -127,3 +127,50 @@ class TestLexers(TestCase): (Token.Text, '\n'), ] self.assertEqual(tokens, list(self.lexer.get_tokens(fragment))) + + fragment = '%%writefile -a foo.py\nif a == b:\n pass' + tokens = [ + (Token.Operator, '%%writefile'), + (Token.Text, ' -a foo.py\n'), + (Token.Keyword, 'if'), + (Token.Text, ' '), + (Token.Name, 'a'), + (Token.Text, ' '), + (Token.Operator, '=='), + (Token.Text, ' '), + (Token.Name, 'b'), + (Token.Punctuation, ':'), + (Token.Text, '\n'), + (Token.Text, ' '), + (Token.Keyword, 'pass'), + (Token.Text, '\n'), + ] + self.assertEqual(tokens, list(self.lexer.get_tokens(fragment))) + + fragment = '%%timeit\nmath.sin(0)' + tokens = [ + (Token.Operator, '%%timeit\n'), + (Token.Name, 'math'), + (Token.Operator, '.'), + (Token.Name, 'sin'), + (Token.Punctuation, '('), + (Token.Literal.Number.Integer, '0'), + (Token.Punctuation, ')'), + (Token.Text, '\n'), + ] + + fragment = '%%HTML\n
foo
' + tokens = [ + (Token.Operator, '%%HTML'), + (Token.Text, '\n'), + (Token.Punctuation, '<'), + (Token.Name.Tag, 'div'), + (Token.Punctuation, '>'), + (Token.Text, 'foo'), + (Token.Punctuation, '<'), + (Token.Punctuation, '/'), + (Token.Name.Tag, 'div'), + (Token.Punctuation, '>'), + (Token.Text, '\n'), + ] + self.assertEqual(tokens, list(self.lexer.get_tokens(fragment)))