1 #!/usr/bin/env python 2 3 "Test sqlliterals." 4 5 import sqlliterals.pyparser 6 import sqlliterals.regexp 7 8 def show(regions): 9 non_literal = 1 10 for region in regions: 11 print region, 12 if non_literal: 13 print "(NL)", 14 else: 15 print "(L)", 16 non_literal = not non_literal 17 print 18 19 l = [ 20 "a = a", 21 "a = 'a'", 22 "'a' = a", 23 "'a' = 'a'", 24 "a = ''''", 25 "'''' = a", 26 "'''' = ''''", 27 "a = '''a'''", 28 "'''a''' = a", 29 "'''a''' = '''a'''" 30 ] 31 32 for s in l: 33 show(sqlliterals.pyparser.parseString(s)) 34 show(sqlliterals.regexp.parseString(s)) 35 36 l2 = [ 37 ("a = ?", "a = %s"), 38 ("a = '?'", "a = '?'"), 39 ("'a' = ?", "'a' = %s"), 40 ("'a' = '?'", "'a' = '?'"), 41 ("a = ''?''", "a = ''%s''"), 42 ("'''' = ?", "'''' = %s"), 43 ("'''' = ''?''", "'''' = ''%s''"), 44 ("a = '''?'''", "a = '''?'''"), 45 ("'''a''' = ?", "'''a''' = %s"), 46 ("'''a''' = '''?'''", "'''a''' = '''?'''") 47 ] 48 49 for s, exp in l2: 50 s2 = sqlliterals.pyparser.replace("?", "%s", s) 51 print s, s2, s2 == exp 52 s2 = sqlliterals.regexp.replace("?", "%s", s) 53 print s, s2, s2 == exp 54 55 # vim: tabstop=4 expandtab shiftwidth=4