diff options
author | Alexei Sholik <alcosholik@gmail.com> | 2014-06-05 04:07:19 +0300 |
---|---|---|
committer | Alexei Sholik <alcosholik@gmail.com> | 2014-06-05 04:07:19 +0300 |
commit | db1e5ef0852069e7a471e990e6024fdf1b9b8a61 (patch) | |
tree | a406476c1d6dd2e64df74b86eae10e376ebd5993 /tests/test_using_api.py | |
download | pygments-git-db1e5ef0852069e7a471e990e6024fdf1b9b8a61.tar.gz |
Update ElixirLexer and example_elixir.ex
Elixir syntax has evolved quite significantly since the initial lexer
was written. In this update I have rewritten most of the code to support
modern Elixir (as of v0.14.0-dev).
The example file has also been updated to give an quick overview
of most of the language constructs.
Diffstat (limited to 'tests/test_using_api.py')
-rw-r--r-- | tests/test_using_api.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/test_using_api.py b/tests/test_using_api.py new file mode 100644 index 00000000..9e53c206 --- /dev/null +++ b/tests/test_using_api.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +""" + Pygments tests for using() + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +import unittest + +from pygments.lexer import using, bygroups, this, RegexLexer +from pygments.token import String, Text, Keyword + +class TestLexer(RegexLexer): + tokens = { + 'root': [ + (r'#.*', + using(this, state='invalid')), + (r'(")(.+?)(")', + bygroups(String, using(this, state='string'), String)), + (r'[^"]+', Text), + ], + 'string': [ + (r'.+', Keyword), + ], + } + + +class UsingStateTest(unittest.TestCase): + def test_basic(self): + expected = [(Text, 'a'), (String, '"'), (Keyword, 'bcd'), + (String, '"'), (Text, 'e\n')] + t = list(TestLexer().get_tokens('a"bcd"e')) + self.assertEqual(t, expected) + + def test_error(self): + def gen(): + return list(TestLexer().get_tokens('#a')) + self.assertRaises(KeyError, gen) |