summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@gmail.com>2009-05-06 06:58:01 +0200
committerAndi Albrecht <albrecht.andi@gmail.com>2009-05-06 06:58:01 +0200
commit087de87e41669fc88594b8344515c83cf3f26eb3 (patch)
tree5027adbd0080a93f484d8cc2f1b3d4e9d198682f
parent7b2bf235613759f1894fcdf9e2fc39af7ac21689 (diff)
downloadsqlparse-087de87e41669fc88594b8344515c83cf3f26eb3.tar.gz
* Added profile option to run_tests.py.
* Use sets in Token.match.
-rw-r--r--sqlparse/sql.py12
-rwxr-xr-xtests/run_tests.py20
2 files changed, 23 insertions, 9 deletions
diff --git a/sqlparse/sql.py b/sqlparse/sql.py
index 8eef036..ee18d4f 100644
--- a/sqlparse/sql.py
+++ b/sqlparse/sql.py
@@ -16,7 +16,7 @@ class Token(object):
the type of the token.
"""
- __slots__ = ('value', 'ttype')
+ __slots__ = ('value', 'ttype',)
def __init__(self, ttype, value):
self.value = value
@@ -69,19 +69,20 @@ class Token(object):
if values is None:
return self.ttype is ttype
if isinstance(values, basestring):
- values = [values]
+ values = set([values])
if regex:
if self.ttype is T.Keyword:
- values = [re.compile(v, re.IGNORECASE) for v in values]
+ values = set([re.compile(v, re.IGNORECASE) for v in values])
else:
- values = [re.compile(v) for v in values]
+ values = set([re.compile(v) for v in values])
for pattern in values:
if pattern.search(self.value):
return True
return False
else:
if self.ttype is T.Keyword:
- return self.value.upper() in [v.upper() for v in values]
+ values = set([v.upper() for v in values])
+ return self.value.upper() in values
else:
return self.value in values
@@ -212,7 +213,6 @@ class TokenList(Token):
for token in self.tokens[idx:]:
for i, func in enumerate(funcs):
if func(token):
- print 'MATCHED', i, token
return token
return None
diff --git a/tests/run_tests.py b/tests/run_tests.py
index 1c7960e..0679307 100755
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
@@ -3,6 +3,8 @@
"""Test runner for sqlparse."""
+import hotshot
+import optparse
import os
import sys
import unittest
@@ -10,11 +12,17 @@ import unittest
sys.path.insert(1, os.path.join(os.path.dirname(__file__), '../'))
-def main():
+parser = optparse.OptionParser()
+parser.add_option('-P', '--profile',
+ help='Create hotshot profile.',
+ action='store_true', default=False)
+
+
+def main(args):
"""Create a TestSuite and run it."""
loader = unittest.TestLoader()
suite = unittest.TestSuite()
- fnames = [os.path.split(f)[-1] for f in sys.argv[1:]]
+ fnames = [os.path.split(f)[-1] for f in args]
for fname in os.listdir(os.path.dirname(__file__)):
if (not fname.startswith('test_') or not fname.endswith('.py')
or (fnames and fname not in fnames)):
@@ -28,4 +36,10 @@ def main():
if __name__ == '__main__':
- main()
+ opts, args = parser.parse_args()
+ if opts.profile:
+ prof = hotshot.Profile("sqlparse.prof")
+ prof.runcall(main, args)
+ prof.close()
+ else:
+ main(args)