diff options
author | Georg Brandl <georg@python.org> | 2014-10-08 08:50:24 +0200 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2014-10-08 08:50:24 +0200 |
commit | ab509e4ea2a8bd3c7e8e355b0e83b3e2de9f7a01 (patch) | |
tree | db1c94d9d2ba3fc0c664b71ba798007eb0da5a65 /tests/test_shell.py | |
parent | 7f5c98a36c3a8e1b9877e1d4cfe41fd00f08833a (diff) | |
parent | e07ba8bf31d7a9ee2cfd4832608a9453a9f81fbe (diff) | |
download | pygments-ab509e4ea2a8bd3c7e8e355b0e83b3e2de9f7a01.tar.gz |
Merged in __russ__/pygments-main (pull request #165)
Diffstat (limited to 'tests/test_shell.py')
-rw-r--r-- | tests/test_shell.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test_shell.py b/tests/test_shell.py new file mode 100644 index 00000000..eb09e8d1 --- /dev/null +++ b/tests/test_shell.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +""" + Basic Shell Tests + ~~~~~~~~~~~~~~~~~ + + :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import unittest + +from pygments.token import Token +from pygments.lexers import BashLexer + + +class BashTest(unittest.TestCase): + + def setUp(self): + self.lexer = BashLexer() + self.maxDiff = None + + def testCurlyNoEscapeAndQuotes(self): + fragment = u'echo "${a//["b"]/}"\n' + tokens = [ + (Token.Name.Builtin, u'echo'), + (Token.Text, u' '), + (Token.Literal.String.Double, u'"'), + (Token.String.Interpol, u'${'), + (Token.Name.Variable, u'a'), + (Token.Punctuation, u'//['), + (Token.Literal.String.Double, u'"b"'), + (Token.Punctuation, u']/'), + (Token.String.Interpol, u'}'), + (Token.Literal.String.Double, u'"'), + (Token.Text, u'\n'), + ] + self.assertEqual(tokens, list(self.lexer.get_tokens(fragment))) + + def testCurlyWithEscape(self): + fragment = u'echo ${a//[\\"]/}\n' + tokens = [ + (Token.Name.Builtin, u'echo'), + (Token.Text, u' '), + (Token.String.Interpol, u'${'), + (Token.Name.Variable, u'a'), + (Token.Punctuation, u'//['), + (Token.Literal.String.Escape, u'\\"'), + (Token.Punctuation, u']/'), + (Token.String.Interpol, u'}'), + (Token.Text, u'\n'), + ] + self.assertEqual(tokens, list(self.lexer.get_tokens(fragment))) + + def testParsedSingle(self): + fragment = u"a=$'abc\\''\n" + tokens = [ + (Token.Name.Variable, u'a'), + (Token.Operator, u'='), + (Token.Literal.String.Single, u"$'abc\\''"), + (Token.Text, u'\n'), + ] + self.assertEqual(tokens, list(self.lexer.get_tokens(fragment))) + |