diff options
| author | Andi Albrecht <albrecht.andi@gmail.com> | 2009-05-06 06:58:01 +0200 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2009-05-06 06:58:01 +0200 |
| commit | 087de87e41669fc88594b8344515c83cf3f26eb3 (patch) | |
| tree | 5027adbd0080a93f484d8cc2f1b3d4e9d198682f | |
| parent | 7b2bf235613759f1894fcdf9e2fc39af7ac21689 (diff) | |
| download | sqlparse-087de87e41669fc88594b8344515c83cf3f26eb3.tar.gz | |
* Added profile option to run_tests.py.
* Use sets in Token.match.
| -rw-r--r-- | sqlparse/sql.py | 12 | ||||
| -rwxr-xr-x | tests/run_tests.py | 20 |
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) |
