diff options
Diffstat (limited to 'tests/test_unistring.py')
-rw-r--r-- | tests/test_unistring.py | 65 |
1 files changed, 32 insertions, 33 deletions
diff --git a/tests/test_unistring.py b/tests/test_unistring.py index c56b68c7..a4b58827 100644 --- a/tests/test_unistring.py +++ b/tests/test_unistring.py @@ -3,46 +3,45 @@ Test suite for the unistring module ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. + :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ import re -import unittest import random from pygments import unistring as uni from pygments.util import unichr -class UnistringTest(unittest.TestCase): - def test_cats_exist_and_compilable(self): - for cat in uni.cats: - s = getattr(uni, cat) - if s == '': # Probably Cs on Jython - continue - print("%s %r" % (cat, s)) - re.compile('[%s]' % s) - - def _cats_that_match(self, c): - matching_cats = [] - for cat in uni.cats: - s = getattr(uni, cat) - if s == '': # Probably Cs on Jython - continue - if re.compile('[%s]' % s).match(c): - matching_cats.append(cat) - return matching_cats - - def test_spot_check_types(self): - # Each char should match one, and precisely one, category - random.seed(0) - for i in range(1000): - o = random.randint(0, 65535) - c = unichr(o) - if o > 0xd800 and o <= 0xdfff and not uni.Cs: - continue # Bah, Jython. - print(hex(o)) - cats = self._cats_that_match(c) - self.assertEqual(len(cats), 1, - "%d (%s): %s" % (o, c, cats)) +def test_cats_exist_and_compilable(): + for cat in uni.cats: + s = getattr(uni, cat) + if s == '': # Probably Cs on Jython + continue + print("%s %r" % (cat, s)) + re.compile('[%s]' % s) + + +def _cats_that_match(c): + matching_cats = [] + for cat in uni.cats: + s = getattr(uni, cat) + if s == '': # Probably Cs on Jython + continue + if re.compile('[%s]' % s).match(c): + matching_cats.append(cat) + return matching_cats + + +def test_spot_check_types(): + # Each char should match one, and precisely one, category + random.seed(0) + for i in range(1000): + o = random.randint(0, 65535) + c = unichr(o) + if o > 0xd800 and o <= 0xdfff and not uni.Cs: + continue # Bah, Jython. + print(hex(o)) + cats = _cats_that_match(c) + assert len(cats) == 1, "%d (%s): %s" % (o, c, cats) |