summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_filters.py1
-rw-r--r--tests/test_format.py12
-rw-r--r--tests/test_functions.py1
-rw-r--r--tests/test_grouping.py27
-rw-r--r--tests/test_parse.py17
-rw-r--r--tests/test_pipeline.py8
-rw-r--r--tests/test_regressions.py10
-rw-r--r--tests/test_split.py48
-rw-r--r--tests/test_tokenize.py23
-rw-r--r--tests/utils.py12
10 files changed, 81 insertions, 78 deletions
diff --git a/tests/test_filters.py b/tests/test_filters.py
index d827454..925b0b6 100644
--- a/tests/test_filters.py
+++ b/tests/test_filters.py
@@ -74,5 +74,4 @@ LIMIT 1"""
if __name__ == "__main__":
- #import sys;sys.argv = ['', 'Test.testName']
unittest.main()
diff --git a/tests/test_format.py b/tests/test_format.py
index a105b1c..4746358 100644
--- a/tests/test_format.py
+++ b/tests/test_format.py
@@ -92,10 +92,14 @@ class TestFormat(TestCaseBase):
f = lambda x: sqlparse.format(x)
# Because of the use of
- self.ndiffAssertEqual(f(s1), "SELECT some_column LIKE 'value\r'")
- self.ndiffAssertEqual(f(s2), "SELECT some_column LIKE 'value\r'\nWHERE id = 1\n")
- self.ndiffAssertEqual(f(s3), "SELECT some_column LIKE 'value\\'\r' WHERE id = 1\n")
- self.ndiffAssertEqual(f(s4), "SELECT some_column LIKE 'value\\\\\\'\r' WHERE id = 1\n")
+ self.ndiffAssertEqual(
+ f(s1), "SELECT some_column LIKE 'value\r'")
+ self.ndiffAssertEqual(
+ f(s2), "SELECT some_column LIKE 'value\r'\nWHERE id = 1\n")
+ self.ndiffAssertEqual(
+ f(s3), "SELECT some_column LIKE 'value\\'\r' WHERE id = 1\n")
+ self.ndiffAssertEqual(
+ f(s4), "SELECT some_column LIKE 'value\\\\\\'\r' WHERE id = 1\n")
def test_outputformat(self):
sql = 'select * from foo;'
diff --git a/tests/test_functions.py b/tests/test_functions.py
index 52e2ce7..425ab7f 100644
--- a/tests/test_functions.py
+++ b/tests/test_functions.py
@@ -160,5 +160,4 @@ class Test_IsType(Test_SQL):
if __name__ == "__main__":
- #import sys;sys.argv = ['', 'Test.testName']
main()
diff --git a/tests/test_grouping.py b/tests/test_grouping.py
index 5ade830..5b87a38 100644
--- a/tests/test_grouping.py
+++ b/tests/test_grouping.py
@@ -3,6 +3,7 @@
import pytest
import sqlparse
+from sqlparse import compat
from sqlparse import sql
from sqlparse import tokens as T
@@ -26,7 +27,7 @@ class TestGrouping(TestCaseBase):
def test_comments(self):
s = '/*\n * foo\n */ \n bar'
parsed = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(parsed))
+ self.ndiffAssertEqual(s, compat.text_type(parsed))
self.assertEqual(len(parsed.tokens), 2)
def test_assignment(self):
@@ -42,18 +43,18 @@ class TestGrouping(TestCaseBase):
def test_identifiers(self):
s = 'select foo.bar from "myscheme"."table" where fail. order'
parsed = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(parsed))
+ self.ndiffAssertEqual(s, compat.text_type(parsed))
self.assert_(isinstance(parsed.tokens[2], sql.Identifier))
self.assert_(isinstance(parsed.tokens[6], sql.Identifier))
self.assert_(isinstance(parsed.tokens[8], sql.Where))
s = 'select * from foo where foo.id = 1'
parsed = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(parsed))
+ self.ndiffAssertEqual(s, compat.text_type(parsed))
self.assert_(isinstance(parsed.tokens[-1].tokens[-1].tokens[0],
sql.Identifier))
s = 'select * from (select "foo"."id" from foo)'
parsed = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(parsed))
+ self.ndiffAssertEqual(s, compat.text_type(parsed))
self.assert_(isinstance(parsed.tokens[-1].tokens[3], sql.Identifier))
s = "INSERT INTO `test` VALUES('foo', 'bar');"
@@ -69,7 +70,7 @@ class TestGrouping(TestCaseBase):
self.assertEqual(len(parsed.tokens[2].tokens), 4)
identifiers = list(parsed.tokens[2].get_identifiers())
self.assertEqual(len(identifiers), 2)
- self.assertEquals(identifiers[0].get_alias(), u"col")
+ self.assertEquals(identifiers[0].get_alias(), 'col')
def test_identifier_wildcard(self):
p = sqlparse.parse('a.*, b.id')[0]
@@ -141,44 +142,44 @@ class TestGrouping(TestCaseBase):
def test_where(self):
s = 'select * from foo where bar = 1 order by id desc'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertTrue(len(p.tokens), 16)
s = 'select x from (select y from foo where bar = 1) z'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertTrue(isinstance(p.tokens[-1].tokens[0].tokens[-2], sql.Where))
def test_typecast(self):
s = 'select foo::integer from bar'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertEqual(p.tokens[2].get_typecast(), 'integer')
self.assertEqual(p.tokens[2].get_name(), 'foo')
s = 'select (current_database())::information_schema.sql_identifier'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertEqual(p.tokens[2].get_typecast(),
'information_schema.sql_identifier')
def test_alias(self):
s = 'select foo as bar from mytable'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertEqual(p.tokens[2].get_real_name(), 'foo')
self.assertEqual(p.tokens[2].get_alias(), 'bar')
s = 'select foo from mytable t1'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertEqual(p.tokens[6].get_real_name(), 'mytable')
self.assertEqual(p.tokens[6].get_alias(), 't1')
s = 'select foo::integer as bar from mytable'
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertEqual(p.tokens[2].get_alias(), 'bar')
s = ('SELECT DISTINCT '
'(current_database())::information_schema.sql_identifier AS view')
p = sqlparse.parse(s)[0]
- self.ndiffAssertEqual(s, unicode(p))
+ self.ndiffAssertEqual(s, compat.text_type(p))
self.assertEqual(p.tokens[4].get_alias(), 'view')
def test_alias_case(self): # see issue46
diff --git a/tests/test_parse.py b/tests/test_parse.py
index 6c9d6a6..bbe60df 100644
--- a/tests/test_parse.py
+++ b/tests/test_parse.py
@@ -8,6 +8,7 @@ from tests.utils import TestCaseBase
import sqlparse
import sqlparse.sql
+from sqlparse import compat
from sqlparse import tokens as T
@@ -30,18 +31,18 @@ class SQLParseTest(TestCaseBase):
self.assertEqual(str(stmts[1]), sql2)
def test_newlines(self):
- sql = u'select\n*from foo;'
+ sql = 'select\n*from foo;'
p = sqlparse.parse(sql)[0]
- self.assertEqual(unicode(p), sql)
- sql = u'select\r\n*from foo'
+ self.assertEqual(compat.text_type(p), sql)
+ sql = 'select\r\n*from foo'
p = sqlparse.parse(sql)[0]
- self.assertEqual(unicode(p), sql)
- sql = u'select\r*from foo'
+ self.assertEqual(compat.text_type(p), sql)
+ sql = 'select\r*from foo'
p = sqlparse.parse(sql)[0]
- self.assertEqual(unicode(p), sql)
- sql = u'select\r\n*from foo\n'
+ self.assertEqual(compat.text_type(p), sql)
+ sql = 'select\r\n*from foo\n'
p = sqlparse.parse(sql)[0]
- self.assertEqual(unicode(p), sql)
+ self.assertEqual(compat.text_type(p), sql)
def test_within(self):
sql = 'foo(col1, col2)'
diff --git a/tests/test_pipeline.py b/tests/test_pipeline.py
index 3442a5b..0d0f360 100644
--- a/tests/test_pipeline.py
+++ b/tests/test_pipeline.py
@@ -30,7 +30,7 @@ class Test(unittest.TestCase):
FROM links
WHERE parent_dir == :parent_dir AND name == :name
LIMIT 1"""
- self.assertEqual([u'child_entry', u'inode', u'creation'],
+ self.assertEqual(['child_entry', 'inode', 'creation'],
self.pipe(sql))
def test_3(self):
@@ -64,7 +64,7 @@ WHERE dir_entries.inode == :inode
GROUP BY dir_entries.inode
LIMIT 1"""
- self.assertEqual([u'st_dev', u'st_uid', u'st_gid', u'st_mode',
- u'st_ino', u'st_nlink', u'st_ctime',
- u'st_atime', u'st_mtime', u'st_size', u'size'],
+ self.assertEqual(['st_dev', 'st_uid', 'st_gid', 'st_mode',
+ 'st_ino', 'st_nlink', 'st_ctime',
+ 'st_atime', 'st_mtime', 'st_size', 'size'],
self.pipe(sql))
diff --git a/tests/test_regressions.py b/tests/test_regressions.py
index ea8cd56..6bd198b 100644
--- a/tests/test_regressions.py
+++ b/tests/test_regressions.py
@@ -5,6 +5,7 @@ import sys
from tests.utils import TestCaseBase, load_file
import sqlparse
+from sqlparse import compat
from sqlparse import sql
from sqlparse import tokens as T
@@ -84,7 +85,7 @@ class RegressionTests(TestCaseBase):
self.assertEqual(len(p.tokens), 7)
self.assertEqual(p.tokens[2].__class__, sql.IdentifierList)
self.assertEqual(p.tokens[-1].__class__, sql.Identifier)
- self.assertEqual(p.tokens[-1].get_name(), u'foo')
+ self.assertEqual(p.tokens[-1].get_name(), 'foo')
sp = p.tokens[-1].tokens[0]
self.assertEqual(sp.tokens[3].__class__, sql.IdentifierList)
# make sure that formatting works as expected
@@ -164,7 +165,8 @@ ALTER TABLE..... ;"""
def test_comment_encoding_when_reindent():
# There was an UnicodeEncodeError in the reindent filter that
# casted every comment followed by a keyword to str.
- sql = u'select foo -- Comment containing Ümläuts\nfrom bar'
+ sql = compat.text_type(compat.u(
+ 'select foo -- Comment containing Ümläuts\nfrom bar'))
formatted = sqlparse.format(sql, reindent=True)
assert formatted == sql
@@ -194,7 +196,9 @@ def test_format_accepts_encoding(): # issue20
sql = load_file('test_cp1251.sql', 'cp1251')
formatted = sqlparse.format(sql, reindent=True, encoding='cp1251')
if sys.version_info < (3,):
- tformatted = u'insert into foo\nvalues (1); -- Песня про надежду\n'
+ tformatted = compat.text_type(
+ 'insert into foo\nvalues (1); -- Песня про надежду\n',
+ encoding='utf-8')
else:
tformatted = 'insert into foo\nvalues (1); -- Песня про надежду\n'
assert formatted == tformatted
diff --git a/tests/test_split.py b/tests/test_split.py
index 54e8d04..8b22aad 100644
--- a/tests/test_split.py
+++ b/tests/test_split.py
@@ -1,12 +1,12 @@
# -*- coding: utf-8 -*-
# Tests splitting functions.
-
-import unittest
+import types
from tests.utils import load_file, TestCaseBase
import sqlparse
+from sqlparse import compat
class SQLSplitTest(TestCaseBase):
@@ -19,8 +19,8 @@ class SQLSplitTest(TestCaseBase):
sql2 = 'select * from foo where bar = \'foo;bar\';'
stmts = sqlparse.parse(''.join([self._sql1, sql2]))
self.assertEqual(len(stmts), 2)
- self.ndiffAssertEqual(unicode(stmts[0]), self._sql1)
- self.ndiffAssertEqual(unicode(stmts[1]), sql2)
+ self.ndiffAssertEqual(compat.text_type(stmts[0]), self._sql1)
+ self.ndiffAssertEqual(compat.text_type(stmts[1]), sql2)
def test_split_backslash(self):
stmts = sqlparse.parse(r"select '\\'; select '\''; select '\\\'';")
@@ -30,31 +30,31 @@ class SQLSplitTest(TestCaseBase):
sql = load_file('function.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 1)
- self.ndiffAssertEqual(unicode(stmts[0]), sql)
+ self.ndiffAssertEqual(compat.text_type(stmts[0]), sql)
def test_create_function_psql(self):
sql = load_file('function_psql.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 1)
- self.ndiffAssertEqual(unicode(stmts[0]), sql)
+ self.ndiffAssertEqual(compat.text_type(stmts[0]), sql)
def test_create_function_psql3(self):
sql = load_file('function_psql3.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 1)
- self.ndiffAssertEqual(unicode(stmts[0]), sql)
+ self.ndiffAssertEqual(compat.text_type(stmts[0]), sql)
def test_create_function_psql2(self):
sql = load_file('function_psql2.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 1)
- self.ndiffAssertEqual(unicode(stmts[0]), sql)
+ self.ndiffAssertEqual(compat.text_type(stmts[0]), sql)
def test_dashcomments(self):
sql = load_file('dashcomment.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 3)
- self.ndiffAssertEqual(''.join(unicode(q) for q in stmts), sql)
+ self.ndiffAssertEqual(''.join(compat.text_type(q) for q in stmts), sql)
def test_dashcomments_eol(self):
stmts = sqlparse.parse('select foo; -- comment\n')
@@ -70,36 +70,38 @@ class SQLSplitTest(TestCaseBase):
sql = load_file('begintag.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 3)
- self.ndiffAssertEqual(''.join(unicode(q) for q in stmts), sql)
+ self.ndiffAssertEqual(''.join(compat.text_type(q) for q in stmts), sql)
def test_begintag_2(self):
sql = load_file('begintag_2.sql')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 1)
- self.ndiffAssertEqual(''.join(unicode(q) for q in stmts), sql)
+ self.ndiffAssertEqual(''.join(compat.text_type(q) for q in stmts), sql)
def test_dropif(self):
sql = 'DROP TABLE IF EXISTS FOO;\n\nSELECT * FROM BAR;'
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 2)
- self.ndiffAssertEqual(''.join(unicode(q) for q in stmts), sql)
+ self.ndiffAssertEqual(''.join(compat.text_type(q) for q in stmts), sql)
def test_comment_with_umlaut(self):
- sql = (u'select * from foo;\n'
- u'-- Testing an umlaut: ä\n'
- u'select * from bar;')
+ sql = (compat.u(
+ 'select * from foo;\n'
+ '-- Testing an umlaut: ä\n'
+ 'select * from bar;'))
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 2)
- self.ndiffAssertEqual(''.join(unicode(q) for q in stmts), sql)
+ self.ndiffAssertEqual(''.join(compat.text_type(q) for q in stmts), sql)
def test_comment_end_of_line(self):
sql = ('select * from foo; -- foo\n'
'select * from bar;')
stmts = sqlparse.parse(sql)
self.assertEqual(len(stmts), 2)
- self.ndiffAssertEqual(''.join(unicode(q) for q in stmts), sql)
+ self.ndiffAssertEqual(''.join(compat.text_type(q) for q in stmts), sql)
# make sure the comment belongs to first query
- self.ndiffAssertEqual(unicode(stmts[0]), 'select * from foo; -- foo\n')
+ self.ndiffAssertEqual(
+ compat.text_type(stmts[0]), 'select * from foo; -- foo\n')
def test_casewhen(self):
sql = ('SELECT case when val = 1 then 2 else null end as foo;\n'
@@ -122,19 +124,15 @@ class SQLSplitTest(TestCaseBase):
self.assertEqual(len(stmts), 2)
def test_split_stream(self):
- import types
- from cStringIO import StringIO
-
- stream = StringIO("SELECT 1; SELECT 2;")
+ stream = compat.StringIO("SELECT 1; SELECT 2;")
stmts = sqlparse.parsestream(stream)
self.assertEqual(type(stmts), types.GeneratorType)
self.assertEqual(len(list(stmts)), 2)
def test_encoding_parsestream(self):
- from cStringIO import StringIO
- stream = StringIO("SELECT 1; SELECT 2;")
+ stream = compat.StringIO("SELECT 1; SELECT 2;")
stmts = list(sqlparse.parsestream(stream))
- self.assertEqual(type(stmts[0].tokens[0].value), unicode)
+ self.assertEqual(type(stmts[0].tokens[0].value), compat.text_type)
def test_split_simple():
diff --git a/tests/test_tokenize.py b/tests/test_tokenize.py
index 0b23fa8..a38e50f 100644
--- a/tests/test_tokenize.py
+++ b/tests/test_tokenize.py
@@ -1,15 +1,15 @@
# -*- coding: utf-8 -*-
-import sys
import types
import unittest
import pytest
import sqlparse
+from sqlparse import compat
from sqlparse import lexer
from sqlparse import sql
-from sqlparse.tokens import *
+from sqlparse.tokens import * # noqa
class TestTokenize(unittest.TestCase):
@@ -21,14 +21,14 @@ class TestTokenize(unittest.TestCase):
tokens = list(stream)
self.assertEqual(len(tokens), 8)
self.assertEqual(len(tokens[0]), 2)
- self.assertEqual(tokens[0], (Keyword.DML, u'select'))
- self.assertEqual(tokens[-1], (Punctuation, u';'))
+ self.assertEqual(tokens[0], (Keyword.DML, 'select'))
+ self.assertEqual(tokens[-1], (Punctuation, ';'))
def test_backticks(self):
s = '`foo`.`bar`'
tokens = list(lexer.tokenize(s))
self.assertEqual(len(tokens), 3)
- self.assertEqual(tokens[0], (Name, u'`foo`'))
+ self.assertEqual(tokens[0], (Name, '`foo`'))
def test_linebreaks(self): # issue1
s = 'foo\nbar\n'
@@ -50,7 +50,7 @@ class TestTokenize(unittest.TestCase):
self.assertEqual(len(tokens), 3)
self.assertEqual(tokens[0][0], Keyword.DDL)
self.assertEqual(tokens[2][0], Name)
- self.assertEqual(tokens[2][1], u'created_foo')
+ self.assertEqual(tokens[2][1], 'created_foo')
s = "enddate"
tokens = list(lexer.tokenize(s))
self.assertEqual(len(tokens), 1)
@@ -72,7 +72,7 @@ class TestTokenize(unittest.TestCase):
self.assertEqual(tokens[2][0], Number.Integer)
self.assertEqual(tokens[2][1], '-1')
- # Somehow this test fails on Python 3.2
+ # Somehow this test fails on Python 3
@pytest.mark.skipif('sys.version_info >= (3,0)')
def test_tab_expansion(self):
s = "\t"
@@ -132,10 +132,9 @@ class TestTokenList(unittest.TestCase):
class TestStream(unittest.TestCase):
- def test_simple(self):
- from cStringIO import StringIO
- stream = StringIO("SELECT 1; SELECT 2;")
+ def test_simple(self):
+ stream = compat.StringIO("SELECT 1; SELECT 2;")
lex = lexer.Lexer()
tokens = lex.get_tokens(stream)
@@ -152,9 +151,7 @@ class TestStream(unittest.TestCase):
self.assertEqual(len(tokens), 9)
def test_error(self):
- from cStringIO import StringIO
-
- stream = StringIO("FOOBAR{")
+ stream = compat.StringIO("FOOBAR{")
lex = lexer.Lexer()
lex.bufsize = 4
diff --git a/tests/utils.py b/tests/utils.py
index 9eb46bf..92d7a4b 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -6,8 +6,8 @@ import codecs
import difflib
import os
import unittest
-from StringIO import StringIO
+from sqlparse import compat
import sqlparse.utils
NL = '\n'
@@ -31,16 +31,16 @@ class TestCaseBase(unittest.TestCase):
def ndiffAssertEqual(self, first, second):
"""Like failUnlessEqual except use ndiff for readable output."""
if first != second:
- sfirst = unicode(first)
- ssecond = unicode(second)
+ sfirst = compat.text_type(first)
+ ssecond = compat.text_type(second)
# Using the built-in .splitlines() method here will cause incorrect
# results when splitting statements that have quoted CR/CR+LF
# characters.
sfirst = sqlparse.utils.split_unquoted_newlines(sfirst)
ssecond = sqlparse.utils.split_unquoted_newlines(ssecond)
diff = difflib.ndiff(sfirst, ssecond)
- fp = StringIO()
+ fp = compat.StringIO()
fp.write(NL)
fp.write(NL.join(diff))
- print fp.getvalue()
- raise self.failureException, fp.getvalue()
+ print(fp.getvalue())
+ raise self.failureException(fp.getvalue())