chromium/tools/grit/grit/lazy_re_unittest.py

#!/usr/bin/env python3
# Copyright 2012 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

'''Unit test for lazy_re.
'''


import os
import sys
if __name__ == '__main__':
  sys.path.append(os.path.join(os.path.dirname(__file__), '..'))

import re
import unittest

from grit import lazy_re


class LazyReUnittest(unittest.TestCase):

  def testCreatedOnlyOnDemand(self):
    rex = lazy_re.compile('bingo')
    self.assertEqual(None, rex._lazy_re)
    self.assertTrue(rex.match('bingo'))
    self.assertNotEqual(None, rex._lazy_re)

  def testJustKwargsWork(self):
    rex = lazy_re.compile(flags=re.I, pattern='BiNgO')
    self.assertTrue(rex.match('bingo'))

  def testPositionalAndKwargsWork(self):
    rex = lazy_re.compile('BiNgO', flags=re.I)
    self.assertTrue(rex.match('bingo'))


if __name__ == '__main__':
  unittest.main()