diff options
| author | Jesús Leganés Combarro "Piranna" <piranna@gmail.com> | 2012-06-03 13:33:38 +0200 |
|---|---|---|
| committer | Jesús Leganés Combarro "Piranna" <piranna@gmail.com> | 2012-06-03 13:33:38 +0200 |
| commit | 1dfef65f69db96649f82db4173a8dad87dda4e0a (patch) | |
| tree | 7c494a70c73176abb26a8b471b0a2ca411d4e3f6 | |
| parent | de9e7cd09142c2ee4fdba5a1e3ebcfdfc0eb2feb (diff) | |
| parent | 92757b0ee0c1543c14f28d3b045ff11ddf5f4297 (diff) | |
| download | sqlparse-1dfef65f69db96649f82db4173a8dad87dda4e0a.tar.gz | |
Merge branch 'master' into milestone_0.1.5
Conflicts:
tests/files/_Make_DirEntry.sql
| -rw-r--r-- | sqlparse/filters.py | 8 | ||||
| -rw-r--r-- | tests/files/_Make_DirEntry.sql | 4 | ||||
| -rw-r--r-- | tests/test_functions.py | 48 |
3 files changed, 45 insertions, 15 deletions
diff --git a/sqlparse/filters.py b/sqlparse/filters.py index fcd1c8d..3bf46d5 100644 --- a/sqlparse/filters.py +++ b/sqlparse/filters.py @@ -830,13 +830,11 @@ class Limit: return -1 -def Compact(sql, includePath="sql"): - """Function that return a compacted version of the input SQL query""" +def compact(stream): + """Function that return a compacted version of the stream""" pipe = Pipeline() - pipe.append(tokenize) - pipe.append(IncludeStatement(includePath)) pipe.append(StripComments()) pipe.append(StripWhitespace) - return pipe(sql) + return pipe(stream) diff --git a/tests/files/_Make_DirEntry.sql b/tests/files/_Make_DirEntry.sql index 88a20e0..e877bf1 100644 --- a/tests/files/_Make_DirEntry.sql +++ b/tests/files/_Make_DirEntry.sql @@ -1,6 +1,6 @@ -- Make a new dir entry -- and return its inode - - + + INSERT INTO dir_entries(type) VALUES(:type)
\ No newline at end of file diff --git a/tests/test_functions.py b/tests/test_functions.py index 1a7ec18..aa382ce 100644 --- a/tests/test_functions.py +++ b/tests/test_functions.py @@ -5,17 +5,17 @@ Created on 13/02/2012 ''' from unittest import main, TestCase -from sqlparse.filters import Tokens2Unicode +from sqlparse.filters import IncludeStatement, Tokens2Unicode from sqlparse.lexer import tokenize import sys sys.path.insert(0, '..') -from sqlparse.filters import Compact +from sqlparse.filters import compact from sqlparse.functions import getcolumns, getlimit, IsType -class Test_SQL(TestCase): +class Test_IncludeStatement(TestCase): sql = """-- type: script -- return: integer @@ -25,6 +25,27 @@ class Test_SQL(TestCase): VALUES(:inode) LIMIT 1""" + def test_includeStatement(self): + stream = tokenize(self.sql) + includeStatement = IncludeStatement('tests/files', raiseexceptions=True) + stream = includeStatement.process(None, stream) + stream = compact(stream) + + result = Tokens2Unicode(stream) + + self.assertEqual(result, + 'INSERT INTO dir_entries(type)VALUES(:type);INSERT INTO ' + 'directories(inode)VALUES(:inode)LIMIT 1') + + +class Test_SQL(TestCase): + sql = """-- type: script + -- return: integer + + INSERT INTO directories(inode) + VALUES(:inode) + LIMIT 1""" + sql2 = """SELECT child_entry,asdf AS inode, creation FROM links WHERE parent_dir == :parent_dir AND name == :name @@ -63,17 +84,28 @@ LIMIT 1""" class Test_Compact(Test_SQL): def test_compact1(self): - self.assertEqual(Tokens2Unicode(Compact(self.sql, 'tests/files')), - 'INSERT INTO dir_entries(type)VALUES(:type);INSERT INTO ' - 'directories(inode)VALUES(:inode)LIMIT 1') + stream = compact(tokenize(self.sql)) + + result = Tokens2Unicode(stream) + + self.assertEqual(result, + 'INSERT INTO directories(inode)VALUES(:inode)LIMIT 1') def test_compact2(self): - self.assertEqual(Tokens2Unicode(Compact(self.sql2)), + stream = tokenize(self.sql2) + + result = compact(stream) + + self.assertEqual(Tokens2Unicode(result), 'SELECT child_entry,asdf AS inode,creation FROM links WHERE ' 'parent_dir==:parent_dir AND name==:name LIMIT 1') def test_compact3(self): - self.assertEqual(Tokens2Unicode(Compact(self.sql3)), + stream = tokenize(self.sql3) + + result = compact(stream) + + self.assertEqual(Tokens2Unicode(result), 'SELECT 0 AS st_dev,0 AS st_uid,0 AS st_gid,dir_entries.type AS ' 'st_mode,dir_entries.inode AS st_ino,COUNT(links.child_entry)AS ' 'st_nlink,:creation AS st_ctime,dir_entries.access AS st_atime,' |
