import re
import unittest
import match_util
class MatchHelperTest(unittest.TestCase):
def testExpandRegexIdentifierPlaceholder(self):
def matches(pattern, target):
regex = re.compile(match_util.ExpandRegexIdentifierPlaceholder(pattern))
return bool(regex.search(target) and regex.search(' %s ' % target))
self.assertTrue(matches(r'{{hello_world}}', 'helloWorld'))
self.assertTrue(matches(r'{{hello_world}}', 'HelloWorld'))
self.assertTrue(matches(r'{{hello_world}}', 'kHelloWorld'))
self.assertTrue(matches(r'{{hello_world}}', 'hello_world'))
self.assertTrue(matches(r'{{hello_world}}', '_hello_world'))
self.assertTrue(matches(r'{{hello_world}}', 'hello_world_}}'))
self.assertTrue(matches(r'{{hello_world}}', 'HELLO_WORLD'))
self.assertTrue(matches(r'{{hello_world}}', 'HELLO_WORLD1'))
self.assertTrue(matches(r'{{hello_world}}', 'kHelloWorld1'))
self.assertFalse(matches(r'{{hello_world}}', 'hello world'))
self.assertFalse(matches(r'{{hello_world}}', 'helloworld'))
self.assertFalse(matches(r'{{hello_world}}', 'f_hello_world'))
self.assertFalse(matches(r'{{hello_world}}', 'hello_world_f'))
self.assertFalse(matches(r'{{hello_world}}', 'hello/world'))
self.assertFalse(matches(r'{{hello_world}}', 'helloWORLD'))
self.assertFalse(matches(r'{{hello_world}}', 'HELLOworld'))
self.assertFalse(matches(r'{{hello_world}}', 'HELLOWORLD'))
self.assertFalse(matches(r'{{hello_world}}', 'FOO_HELLO_WORLD'))
self.assertFalse(matches(r'{{hello_world}}', 'HELLO_WORLD_BAR'))
self.assertFalse(matches(r'{{hello_world}}', 'FooHelloWorld'))
self.assertFalse(matches(r'{{hello_world}}', 'HelloWorldBar'))
self.assertFalse(matches(r'{{hello_world}}', 'foohello/world'))
self.assertFalse(matches(r'{{hello_world}}', '1HELLO_WORLD'))
self.assertTrue(matches(r'{{_hello_world_}}', 'helloWorld'))
self.assertTrue(matches(r'{{_hello_world_}}', 'HelloWorld'))
self.assertTrue(matches(r'{{_hello_world_}}', 'kHelloWorld'))
self.assertTrue(matches(r'{{_hello_world_}}', 'hello_world'))
self.assertTrue(matches(r'{{_hello_world_}}', '_hello_world'))
self.assertTrue(matches(r'{{_hello_world_}}', 'hello_world_'))
self.assertTrue(matches(r'{{_hello_world_}}', 'HELLO_WORLD'))
self.assertTrue(matches(r'{{_hello_world_}}', 'HELLO_WORLD1'))
self.assertTrue(matches(r'{{_hello_world_}}', 'kHelloWorld1'))
self.assertFalse(matches(r'{{_hello_world_}}', 'hello world'))
self.assertFalse(matches(r'{{_hello_world_}}', 'helloworld'))
self.assertTrue(matches(r'{{_hello_world_}}', 'f_hello_world'))
self.assertTrue(matches(r'{{_hello_world_}}', 'hello_world_f'))
self.assertFalse(matches(r'{{_hello_world_}}', 'hello/world'))
self.assertFalse(matches(r'{{_hello_world_}}', 'helloWORLD'))
self.assertFalse(matches(r'{{_hello_world_}}', 'HELLOworld'))
self.assertFalse(matches(r'{{_hello_world_}}', 'HELLOWORLD'))
self.assertTrue(matches(r'{{_hello_world_}}', 'FOO_HELLO_WORLD'))
self.assertTrue(matches(r'{{_hello_world_}}', 'HELLO_WORLD_BAR'))
self.assertTrue(matches(r'{{_hello_world_}}', 'FooHelloWorld'))
self.assertTrue(matches(r'{{_hello_world_}}', 'HelloWorldBar'))
self.assertFalse(matches(r'{{_hello_world_}}', 'foohello/world'))
self.assertFalse(matches(r'{{_hello_world_}}', '1HELLO_WORLD'))
if __name__ == '__main__':
unittest.main()