Mercurial > hgrepos > Python > libs > pygments-lexer-pseudocode2
comparison tests/test_fr.py @ 18:859ab8abce0a
The first real tests about lexing with the Pygments API for the tests.
Also implemented a simple helper to compare token streams with shorter code.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 20 Apr 2026 14:12:35 +0200 |
| parents | b92f660f2461 |
| children | 2e67c4eae6d9 |
comparison
equal
deleted
inserted
replaced
| 17:251898f2f0c7 | 18:859ab8abce0a |
|---|---|
| 2 # :- | 2 # :- |
| 3 # SPDX-FileCopyrightText: © 2026 Franz Glasner | 3 # SPDX-FileCopyrightText: © 2026 Franz Glasner |
| 4 # SPDX-License-Identifier: MIT | 4 # SPDX-License-Identifier: MIT |
| 5 # :- | 5 # :- |
| 6 | 6 |
| 7 import _tsetup # noqa:F401 (imported but unused) | 7 from _tsetup import LEXERFILENAME, LEXERCLASS |
| 8 | 8 |
| 9 import unittest | 9 import unittest |
| 10 | |
| 11 import pygments | |
| 12 import pygments.lexers | |
| 13 from pygments.token import Token | |
| 14 | |
| 15 import _testhelper | |
| 16 | |
| 17 | |
| 18 class TestLoading(unittest.TestCase): | |
| 19 | |
| 20 def test_load(self): | |
| 21 pygments.lexers.load_lexer_from_file(LEXERFILENAME, LEXERCLASS) | |
| 22 | |
| 23 | |
| 24 class TestFrLexer(unittest.TestCase, _testhelper.TokenAssertHelper): | |
| 25 | |
| 26 def setUp(self): | |
| 27 self.lexer = pygments.lexers.load_lexer_from_file( | |
| 28 LEXERFILENAME, LEXERCLASS) | |
| 29 | |
| 30 def test_types(self): | |
| 31 tokens = pygments.lex("huhu", self.lexer) | |
| 32 self.assertEqual((Token.Name.Variable, "huhu"), next(tokens)) | |
| 33 self.assertEqual((Token.Text, "\n"), next(tokens)) | |
| 34 self.assertRaises(StopIteration, next, tokens) | |
| 35 | |
| 36 def test_op_replace(self): | |
| 37 tokens = pygments.lex("<= >= <> <- ^", self.lexer) | |
| 38 self.assertEqual((Token.Operator, "≤"), next(tokens)) | |
| 39 self.assertEqual((Token.Text, " "), next(tokens)) | |
| 40 self.assertEqual((Token.Operator, "≥"), next(tokens)) | |
| 41 self.assertEqual((Token.Text, " "), next(tokens)) | |
| 42 self.assertEqual((Token.Operator, "≠"), next(tokens)) | |
| 43 self.assertEqual((Token.Text, " "), next(tokens)) | |
| 44 self.assertEqual((Token.Operator, "←"), next(tokens)) | |
| 45 self.assertEqual((Token.Text, " "), next(tokens)) | |
| 46 self.assertEqual((Token.Operator, "↑"), next(tokens)) | |
| 47 self.assertEqual((Token.Text, "\n"), next(tokens)) | |
| 48 self.assertRaises(StopIteration, next, tokens) | |
| 49 | |
| 50 def test_op_replace_list(self): | |
| 51 tokens = pygments.lex("<= >= <> <- ^", self.lexer) | |
| 52 self.assertTokenStreamEqual( | |
| 53 [("Token.Operator", "≤"), | |
| 54 ("Token.Text", " "), | |
| 55 ("Token.Operator", "≥"), | |
| 56 ("Token.Text", " "), | |
| 57 ("Token.Operator", "≠"), | |
| 58 ("Token.Text", " "), | |
| 59 ("Token.Operator", "←"), | |
| 60 ("Token.Text", " "), | |
| 61 ("Token.Operator", "↑"), | |
| 62 ("Token.Text", "\n"), | |
| 63 ], | |
| 64 tokens) | |
| 65 self.assertRaises(StopIteration, next, tokens) | |
| 66 | |
| 67 def test_op_replace_list_with_short_names(self): | |
| 68 tokens = pygments.lex("<= >= <> <- ^", self.lexer) | |
| 69 self.assertTokenStreamEqual( | |
| 70 [("Operator", "≤"), | |
| 71 ("Text", " "), | |
| 72 ("Operator", "≥"), | |
| 73 ("Text", " "), | |
| 74 ("Operator", "≠"), | |
| 75 ("Text", " "), | |
| 76 ("Operator", "←"), | |
| 77 ("Text", " "), | |
| 78 ("Operator", "↑"), | |
| 79 ("Text", "\n"), | |
| 80 ], | |
| 81 tokens) | |
| 82 self.assertRaises(StopIteration, next, tokens) | |
| 83 | |
| 84 def test_op_replace_complete(self): | |
| 85 tokens = pygments.lex("<= >= <> <- ^", self.lexer) | |
| 86 self.assertTokenStreamEqualComplete( | |
| 87 [("Operator", "≤"), | |
| 88 ("Text", " "), | |
| 89 ("Operator", "≥"), | |
| 90 ("Text", " "), | |
| 91 ("Operator", "≠"), | |
| 92 ("Text", " "), | |
| 93 ("Operator", "←"), | |
| 94 ("Text", " "), | |
| 95 ("Operator", "↑"), | |
| 96 ("Text", "\n"), | |
| 97 ], | |
| 98 tokens) | |
| 10 | 99 |
| 11 | 100 |
| 12 if __name__ == "__main__": | 101 if __name__ == "__main__": |
| 13 unittest.main() | 102 unittest.main() |
| 14 | |
| 15 |
