summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesús Leganés Combarro "Piranna" <piranna@gmail.com>2012-06-03 13:33:38 +0200
committerJesús Leganés Combarro "Piranna" <piranna@gmail.com>2012-06-03 13:33:38 +0200
commit1dfef65f69db96649f82db4173a8dad87dda4e0a (patch)
tree7c494a70c73176abb26a8b471b0a2ca411d4e3f6
parentde9e7cd09142c2ee4fdba5a1e3ebcfdfc0eb2feb (diff)
parent92757b0ee0c1543c14f28d3b045ff11ddf5f4297 (diff)
downloadsqlparse-1dfef65f69db96649f82db4173a8dad87dda4e0a.tar.gz
Merge branch 'master' into milestone_0.1.5
Conflicts: tests/files/_Make_DirEntry.sql
-rw-r--r--sqlparse/filters.py8
-rw-r--r--tests/files/_Make_DirEntry.sql4
-rw-r--r--tests/test_functions.py48
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,'