Example #1
0
 def test_arg_type(self):
     self.assertRaises(TypeError, pcre2nfa, None)
     a = pcre2nfa('')
     self.assertEqual(NFA, type(a))
     test = pcre2nfa('^abc')
     self.assertTrue(test.match("abc"))
     self.assertFalse(test.match("dabc"))
Example #2
0
 def test_arg_type(self):
     self.assertRaises(TypeError, pcre2nfa, None)
     a = pcre2nfa('')
     self.assertEqual(NFA, type(a))
     test = pcre2nfa('^abc')
     self.assertTrue(test.match("abc"))
     self.assertFalse(test.match("dabc"))
Example #3
0
 def test_dotall(self):
     a = pcre2nfa('/abc.def/s')
     self.assertTrue(a.match('abcxdef'))
     self.assertTrue(a.match('abc\ndef'))
     self.assertFalse(a.match('abcdef'))
     a = pcre2nfa('/abc.def/')
     self.assertTrue(a.match('abcxdef'))
     self.assertFalse(a.match('abc\ndef'))
Example #4
0
 def test_dotall(self):
     a = pcre2nfa('/abc.def/s')
     self.assertTrue(a.match('abcxdef'))
     self.assertTrue(a.match('abc\ndef'))
     self.assertFalse(a.match('abcdef'))
     a = pcre2nfa('/abc.def/')
     self.assertTrue(a.match('abcxdef'))
     self.assertFalse(a.match('abc\ndef'))
Example #5
0
 def test_upto(self):
     a = pcre2nfa('/a{1,2}b/i')
     self.assertTrue(a.match('ab'))
     self.assertTrue(a.match('aab'))
     self.assertFalse(a.match('aaa'))
     a = pcre2nfa('/a{4,5}b/i')
     self.assertTrue(a.match('aaaab'))
     self.assertTrue(a.match('aaaaab'))
     self.assertFalse(a.match('aaaaaa'))
Example #6
0
 def test_upto(self):
     a = pcre2nfa('/a{1,2}b/i')
     self.assertTrue(a.match('ab'))
     self.assertTrue(a.match('aab'))
     self.assertFalse(a.match('aaa'))
     a = pcre2nfa('/a{4,5}b/i')
     self.assertTrue(a.match('aaaab'))
     self.assertTrue(a.match('aaaaab'))
     self.assertFalse(a.match('aaaaaa'))
Example #7
0
    def test_circ(self):
        a = pcre2nfa('^a')
        self.assertTrue(a.match('a'))
        self.assertTrue(a.match('ab'))
        self.assertFalse(a.match('ba'))

        a = pcre2nfa('^\s*abc')
        self.assertTrue(a.match('abc'))
        self.assertTrue(a.match(' abc'))
        self.assertTrue(a.match('       abcxyz'))
        self.assertFalse(a.match('ababc'))
Example #8
0
    def test_circ(self):
        a = pcre2nfa('^a')
        self.assertTrue(a.match('a'))
        self.assertTrue(a.match('ab'))
        self.assertFalse(a.match('ba'))

        a = pcre2nfa('^\s*abc')
        self.assertTrue(a.match('abc'))
        self.assertTrue(a.match(' abc'))
        self.assertTrue(a.match('       abcxyz'))
        self.assertFalse(a.match('ababc'))
Example #9
0
 def test_case_insensitive(self):
     a = pcre2nfa('/abcde/i')
     self.assertTrue(a.match('ABCDEFGHI'))
     self.assertTrue(a.match('abcdefghi'))
     self.assertTrue(a.match('aBcDeFgHi'))
     self.assertFalse(a.match('afBgChDiE'))
     a = pcre2nfa('/abcde/')
     self.assertFalse(a.match('ABCDEFGHI'))
     self.assertTrue(a.match('abcdefghi'))
     self.assertFalse(a.match('aBcDeFgHi'))
     self.assertFalse(a.match('afBgChDiE'))
Example #10
0
 def test_case_insensitive(self):
     a = pcre2nfa('/abcde/i')
     self.assertTrue(a.match('ABCDEFGHI'))
     self.assertTrue(a.match('abcdefghi'))
     self.assertTrue(a.match('aBcDeFgHi'))
     self.assertFalse(a.match('afBgChDiE'))
     a = pcre2nfa('/abcde/')
     self.assertFalse(a.match('ABCDEFGHI'))
     self.assertTrue(a.match('abcdefghi'))
     self.assertFalse(a.match('aBcDeFgHi'))
     self.assertFalse(a.match('afBgChDiE'))
Example #11
0
    def test_notwhitespace(self):
        a = pcre2nfa('\S')
        self.assertFalse(a.match('\x0c'))
        self.assertFalse(a.match(' '))
        self.assertFalse(a.match('\n'))
        self.assertFalse(a.match('\t'))
        self.assertTrue(a.match('a'))

        a = pcre2nfa('a\Sb')
        self.assertTrue(a.match('aab'))
        self.assertFalse(a.match('\t\n'))
        self.assertFalse(a.match('a b'))
Example #12
0
    def test_notwhitespace(self):
        a = pcre2nfa('\S')
        self.assertFalse(a.match('\x0c'))
        self.assertFalse(a.match(' '))
        self.assertFalse(a.match('\n'))
        self.assertFalse(a.match('\t'))
        self.assertTrue(a.match('a'))

        a = pcre2nfa('a\Sb')
        self.assertTrue(a.match('aab'))
        self.assertFalse(a.match('\t\n'))
        self.assertFalse(a.match('a b'))
Example #13
0
    def test_not_class_range(self):
        a = pcre2nfa('/a[^a-z]b/')
        for c in range(ord('a'), ord('z')):
            self.assertFalse(a.match('a' + chr(c) + 'b'))
        for c in range(32, 60):
            self.assertTrue(a.match('a' + chr(c) + 'b'))

        a = pcre2nfa('/a[^a-z]b/i')
        for c in range(ord('A'), ord('Z')):
            self.assertFalse(a.match('a' + chr(c) + 'b'))
        for c in range(ord('a'), ord('z')):
            self.assertFalse(a.match('a' + chr(c) + 'b'))
        for c in range(32, 57):
            self.assertTrue(a.match('a' + chr(c) + 'b'))
Example #14
0
    def test_notwordchar(self):
        a = pcre2nfa('\W')
        self.assertTrue(a.match('\x0c'))
        self.assertFalse(a.match('A'))
        self.assertFalse(a.match('Z'))
        self.assertFalse(a.match('_'))
        self.assertFalse(a.match('a'))
        self.assertFalse(a.match('z'))
        self.assertTrue(a.match('\n'))

        a = pcre2nfa('a\Wb')
        self.assertFalse(a.match('aab'))
        self.assertFalse(a.match('  '))
        self.assertTrue(a.match('a b'))
Example #15
0
    def test_notwhitespace(self):
        a = pcre2nfa('\S{1,3}')
        self.assertFalse(a.match('\x0c'))
        self.assertFalse(a.match(' '))
        self.assertFalse(a.match('\n'))
        self.assertFalse(a.match('\t'))
        self.assertTrue(a.match('a'))

        a = pcre2nfa('a\S{1,3}b')
        self.assertFalse(a.match('ab'))
        self.assertFalse(a.match('a\tb'))
        self.assertTrue(a.match('axxb'))
        self.assertTrue(a.match('axyzb'))
        self.assertFalse(a.match('attttb'))
Example #16
0
    def test_notwhitespace(self):
        a = pcre2nfa('\S{1,3}')
        self.assertFalse(a.match('\x0c'))
        self.assertFalse(a.match(' '))
        self.assertFalse(a.match('\n'))
        self.assertFalse(a.match('\t'))
        self.assertTrue(a.match('a'))

        a = pcre2nfa('a\S{1,3}b')
        self.assertFalse(a.match('ab'))
        self.assertFalse(a.match('a\tb'))
        self.assertTrue(a.match('axxb'))
        self.assertTrue(a.match('axyzb'))
        self.assertFalse(a.match('attttb'))
Example #17
0
    def test_notwordchar(self):
        a = pcre2nfa('\W')
        self.assertTrue(a.match('\x0c'))
        self.assertFalse(a.match('A'))
        self.assertFalse(a.match('Z'))
        self.assertFalse(a.match('_'))
        self.assertFalse(a.match('a'))
        self.assertFalse(a.match('z'))
        self.assertTrue(a.match('\n'))

        a = pcre2nfa('a\Wb')
        self.assertFalse(a.match('aab'))
        self.assertFalse(a.match('  '))
        self.assertTrue(a.match('a b'))
Example #18
0
    def test_not_class_range(self):
        a = pcre2nfa('/a[^a-z]b/')
        for c in range(ord('a'), ord('z')):
            self.assertFalse(a.match('a' + chr(c) + 'b'))
        for c in range(32, 60):
            self.assertTrue(a.match('a' + chr(c) + 'b'))

        a = pcre2nfa('/a[^a-z]b/i')
        for c in range(ord('A'), ord('Z')):
            self.assertFalse(a.match('a' + chr(c) + 'b'))
        for c in range(ord('a'), ord('z')):
            self.assertFalse(a.match('a' + chr(c) + 'b'))
        for c in range(32, 57):
            self.assertTrue(a.match('a' + chr(c) + 'b'))
Example #19
0
 def test_char_nocase(self):
     a = pcre2nfa('/a/i')
     self.assertTrue(a.match('a'))
     self.assertTrue(a.match('A'))
     self.assertTrue(a.match('ab'))
     self.assertTrue(a.match('bA'))
     self.assertFalse(a.match('b'))
Example #20
0
 def test_char(self):
     a = pcre2nfa('a')
     self.assertTrue(a.match('a'))
     self.assertFalse(a.match('A'))
     self.assertTrue(a.match('ab'))
     self.assertTrue(a.match('ba'))
     self.assertFalse(a.match('b'))
Example #21
0
 def test_dotall_n_caseless(self):
     a = pcre2nfa('/abc.ef/is')
     self.assertTrue(a.match('abcdef'))
     self.assertTrue(a.match('ABCDEF'))
     self.assertTrue(a.match('aBcDeF'))
     self.assertTrue(a.match('abC%ef'))
     self.assertTrue(a.match('abc\nef'))
Example #22
0
    def test_brazero_any(self):
        a = pcre2nfa('a(b|c)*d')
        self.assertTrue(a.match('abd'))
        self.assertTrue(a.match('ad'))
        self.assertTrue(a.match('acd'))
        self.assertTrue(a.match('abbbbd'))
        self.assertFalse(a.match('aed'))

        a = pcre2nfa('a(b*|cd)*e')
        self.assertTrue(a.match('abe'))
        self.assertTrue(a.match('ae'))
        self.assertTrue(a.match('acde'))
        self.assertTrue(a.match('abcde'))
        self.assertTrue(a.match('abbbbe'))
        self.assertTrue(a.match('acdbcde'))
        self.assertFalse(a.match('abcbde'))
Example #23
0
 def test_plus(self):
     a = pcre2nfa('a0+0')
     self.assertFalse(a.match('a0'))
     self.assertTrue(a.match('a00'))
     self.assertTrue(a.match('a000'))
     self.assertTrue(a.match('a0000'))
     self.assertFalse(a.match('a01'))
Example #24
0
 def test_crquery(self):
     a = pcre2nfa('a[0-1]?a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a1a'))
     self.assertFalse(a.match('a10a'))
     self.assertFalse(a.match('a9a'))
Example #25
0
 def test_any(self):
     a = pcre2nfa('a.{2,4}a')
     self.assertFalse(a.match('aaa'))
     self.assertTrue(a.match('abba'))
     self.assertTrue(a.match('ababaa'))
     self.assertTrue(a.match('axxxxa'))
     self.assertFalse(a.match('axxxxxa'))
Example #26
0
 def test_star(self):
     a = pcre2nfa('a0{2,}(a|b)')
     self.assertFalse(a.match('aa'))
     self.assertFalse(a.match('a0a'))
     self.assertTrue(a.match('a00a'))
     self.assertTrue(a.match('a000a'))
     self.assertFalse(a.match('a00x'))
Example #27
0
 def test_any(self):
     a = pcre2nfa('a.*a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('aaa'))
     self.assertTrue(a.match('aba'))
     self.assertTrue(a.match('acdefa'))
     self.assertFalse(a.match('axxxxxx'))
Example #28
0
 def test_digit(self):
     a = pcre2nfa('a\d{2,3}b')
     self.assertTrue(a.match('a12b'))
     self.assertTrue(a.match('a123b'))
     self.assertFalse(a.match('a1b'))
     self.assertFalse(a.match('ab'))
     self.assertFalse(a.match('a1234b'))
Example #29
0
 def test_notwhitespace(self):
     a = pcre2nfa('a\S+b')
     self.assertTrue(a.match('axxb'))
     self.assertTrue(a.match('axb'))
     self.assertFalse(a.match('a b'))
     self.assertFalse(a.match('ab'))
     self.assertFalse(a.match('a    b'))
Example #30
0
 def test_crquery(self):
     a = pcre2nfa('a[0-1]?a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a1a'))
     self.assertFalse(a.match('a10a'))
     self.assertFalse(a.match('a9a'))
Example #31
0
 def test_posstar(self):
     a = pcre2nfa('a0*a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a00a'))
     self.assertTrue(a.match('a000a'))
     self.assertFalse(a.match('a00b'))
Example #32
0
 def test_notminplus(self):
     a = pcre2nfa('a[^x]+?b')
     self.assertTrue(a.match('ayb'))
     self.assertTrue(a.match('ayzb'))
     self.assertFalse(a.match('axb'))
     self.assertFalse(a.match('ab'))
     self.assertFalse(a.match('axxxxxb'))
Example #33
0
    def test_crrange_range(self):
        a = pcre2nfa('^[abc]{2,4}x')
        self.assertFalse(a.match('bx'))
        self.assertTrue(a.match('acx'))
        self.assertTrue(a.match('abcx'))
        self.assertTrue(a.match('bbbbx'))
        self.assertFalse(a.match('bbbbbx'))
        self.assertFalse(a.match('abca'))

        a = pcre2nfa('^[abc]{0,2}x')
        self.assertTrue(a.match('x'))
        self.assertTrue(a.match('bx'))
        self.assertTrue(a.match('acx'))
        self.assertFalse(a.match('bbbx'))
        self.assertFalse(a.match('bbbbx'))
        self.assertFalse(a.match('abca'))
Example #34
0
 def test_posplus(self):
     a = pcre2nfa('a0+a')
     self.assertFalse(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a00a'))
     self.assertTrue(a.match('a000a'))
     self.assertFalse(a.match('a00b'))
Example #35
0
 def test_notposplus(self):
     a = pcre2nfa('a[^x]+x')
     self.assertTrue(a.match('aax'))
     self.assertTrue(a.match('abx'))
     self.assertTrue(a.match('acdefx'))
     self.assertFalse(a.match('axx'))
     self.assertFalse(a.match('ax'))
Example #36
0
 def test_wordchar(self):
     a = pcre2nfa(':\w{2}:')
     self.assertFalse(a.match(':%%:'))
     self.assertTrue(a.match(':aA:'))
     self.assertTrue(a.match(':zZ:'))
     self.assertTrue(a.match(':_a:'))
     self.assertFalse(a.match(':aaa:'))
Example #37
0
 def test_notposplus(self):
     a = pcre2nfa('a[^x]+x')
     self.assertTrue(a.match('aax'))
     self.assertTrue(a.match('abx'))
     self.assertTrue(a.match('acdefx'))
     self.assertFalse(a.match('axx'))
     self.assertFalse(a.match('ax'))
Example #38
0
 def test_whitespace(self):
     a = pcre2nfa('\s')
     self.assertTrue(a.match('\x0c'))
     self.assertTrue(a.match(' '))
     self.assertTrue(a.match('\n'))
     self.assertTrue(a.match('\t'))
     self.assertFalse(a.match('a'))
Example #39
0
 def test_char_nocase(self):
     a = pcre2nfa('/a/i')
     self.assertTrue(a.match('a'))
     self.assertTrue(a.match('A'))
     self.assertTrue(a.match('ab'))
     self.assertTrue(a.match('bA'))
     self.assertFalse(a.match('b'))
Example #40
0
 def test_digit(self):
     a = pcre2nfa('a\d{2,3}b')
     self.assertTrue(a.match('a12b'))
     self.assertTrue(a.match('a123b'))
     self.assertFalse(a.match('a1b'))
     self.assertFalse(a.match('ab'))
     self.assertFalse(a.match('a1234b'))
Example #41
0
    def test_brazero_any(self):
        a = pcre2nfa('a(b|c)*d')
        self.assertTrue(a.match('abd'))
        self.assertTrue(a.match('ad'))
        self.assertTrue(a.match('acd'))
        self.assertTrue(a.match('abbbbd'))
        self.assertFalse(a.match('aed'))

        a = pcre2nfa('a(b*|cd)*e')
        self.assertTrue(a.match('abe'))
        self.assertTrue(a.match('ae'))
        self.assertTrue(a.match('acde'))
        self.assertTrue(a.match('abcde'))
        self.assertTrue(a.match('abbbbe'))
        self.assertTrue(a.match('acdbcde'))
        self.assertFalse(a.match('abcbde'))
Example #42
0
 def test_notwhitespace(self):
     a = pcre2nfa('a\S+b')
     self.assertTrue(a.match('axxb'))
     self.assertTrue(a.match('axb'))
     self.assertFalse(a.match('a b'))
     self.assertFalse(a.match('ab'))
     self.assertFalse(a.match('a    b'))
Example #43
0
 def test_star(self):
     a = pcre2nfa('a0{2,}(a|b)')
     self.assertFalse(a.match('aa'))
     self.assertFalse(a.match('a0a'))
     self.assertTrue(a.match('a00a'))
     self.assertTrue(a.match('a000a'))
     self.assertFalse(a.match('a00x'))
Example #44
0
 def test_wordchar(self):
     a = pcre2nfa(':\w{2}:')
     self.assertFalse(a.match(':%%:'))
     self.assertTrue(a.match(':aA:'))
     self.assertTrue(a.match(':zZ:'))
     self.assertTrue(a.match(':_a:'))
     self.assertFalse(a.match(':aaa:'))
Example #45
0
 def test_posstar(self):
     a = pcre2nfa('a0*a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a00a'))
     self.assertTrue(a.match('a000a'))
     self.assertFalse(a.match('a00b'))
Example #46
0
 def test_notminplus(self):
     a = pcre2nfa('a[^x]+?b')
     self.assertTrue(a.match('ayb'))
     self.assertTrue(a.match('ayzb'))
     self.assertFalse(a.match('axb'))
     self.assertFalse(a.match('ab'))
     self.assertFalse(a.match('axxxxxb'))
Example #47
0
 def test_posplus(self):
     a = pcre2nfa('a0+a')
     self.assertFalse(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a00a'))
     self.assertTrue(a.match('a000a'))
     self.assertFalse(a.match('a00b'))
Example #48
0
 def test_plus(self):
     a = pcre2nfa('a0+0')
     self.assertFalse(a.match('a0'))
     self.assertTrue(a.match('a00'))
     self.assertTrue(a.match('a000'))
     self.assertTrue(a.match('a0000'))
     self.assertFalse(a.match('a01'))
Example #49
0
 def test_any(self):
     a = pcre2nfa('a.*a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('aaa'))
     self.assertTrue(a.match('aba'))
     self.assertTrue(a.match('acdefa'))
     self.assertFalse(a.match('axxxxxx'))
Example #50
0
 def test_crstar(self):
     a = pcre2nfa('a[0-1]*a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a10a'))
     self.assertTrue(a.match('a111000a'))
     self.assertFalse(a.match('a0012100a'))
Example #51
0
 def test_dotall_n_caseless(self):
     a = pcre2nfa('/abc.ef/is')
     self.assertTrue(a.match('abcdef'))
     self.assertTrue(a.match('ABCDEF'))
     self.assertTrue(a.match('aBcDeF'))
     self.assertTrue(a.match('abC%ef'))
     self.assertTrue(a.match('abc\nef'))
Example #52
0
 def test_char(self):
     a = pcre2nfa('a')
     self.assertTrue(a.match('a'))
     self.assertFalse(a.match('A'))
     self.assertTrue(a.match('ab'))
     self.assertTrue(a.match('ba'))
     self.assertFalse(a.match('b'))
Example #53
0
 def test_whitespace(self):
     a = pcre2nfa('\s')
     self.assertTrue(a.match('\x0c'))
     self.assertTrue(a.match(' '))
     self.assertTrue(a.match('\n'))
     self.assertTrue(a.match('\t'))
     self.assertFalse(a.match('a'))
Example #54
0
    def test_crrange_range(self):
        a = pcre2nfa('^[abc]{2,4}x')
        self.assertFalse(a.match('bx'))
        self.assertTrue(a.match('acx'))
        self.assertTrue(a.match('abcx'))
        self.assertTrue(a.match('bbbbx'))
        self.assertFalse(a.match('bbbbbx'))
        self.assertFalse(a.match('abca'))

        a = pcre2nfa('^[abc]{0,2}x')
        self.assertTrue(a.match('x'))
        self.assertTrue(a.match('bx'))
        self.assertTrue(a.match('acx'))
        self.assertFalse(a.match('bbbx'))
        self.assertFalse(a.match('bbbbx'))
        self.assertFalse(a.match('abca'))
Example #55
0
 def test_crstar(self):
     a = pcre2nfa('a[0-1]*a')
     self.assertTrue(a.match('aa'))
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a10a'))
     self.assertTrue(a.match('a111000a'))
     self.assertFalse(a.match('a0012100a'))
Example #56
0
 def test_any(self):
     a = pcre2nfa('a.{2,4}a')
     self.assertFalse(a.match('aaa'))
     self.assertTrue(a.match('abba'))
     self.assertTrue(a.match('ababaa'))
     self.assertTrue(a.match('axxxxa'))
     self.assertFalse(a.match('axxxxxa'))
Example #57
0
 def test_notplus(self):
     a = pcre2nfa('a[^x]+a')
     self.assertTrue(a.match('aaa'))
     self.assertTrue(a.match('aba'))
     self.assertTrue(a.match('acdefa'))
     self.assertFalse(a.match('axa'))
     self.assertFalse(a.match('acdexsda'))
     self.assertFalse(a.match('aa'))
Example #58
0
 def test_notplus(self):
     a = pcre2nfa('a[^x]+a')
     self.assertTrue(a.match('aaa'))
     self.assertTrue(a.match('aba'))
     self.assertTrue(a.match('acdefa'))
     self.assertFalse(a.match('axa'))
     self.assertFalse(a.match('acdexsda'))
     self.assertFalse(a.match('aa'))
Example #59
0
 def test_actual(self):
     a = pcre2nfa('/clsid\s*\x3a\s*\x7B?\s*'
                  'EC5D5118-9FDE-4A3E-84F3-C2B711740E70(\x22)?.*'
                  'DownloadCertificateExt\(/is')
     self.assertTrue(a.match('clsid:EC5D5118-9FDE-4A3E-84F3-C2B711740E70'
                             'DownloadCertificateExt('))
     self.assertTrue(a.match('CLSID : { EC5D5118-9FDE-4A3E-84F3-'
                             'C2B711740E70xxxxxxDownloadCertificateExt('))
Example #60
0
 def test_crplus(self):
     # OP_CRPOSPLUS in pcre >= 8.34
     a = pcre2nfa('a[0-1]+a')
     self.assertTrue(a.match('a0a'))
     self.assertTrue(a.match('a10a'))
     self.assertTrue(a.match('a111000a'))
     self.assertFalse(a.match('aa'))
     self.assertFalse(a.match('a0012100a'))