diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_filters.py | 1 | ||||
| -rw-r--r-- | tests/test_format.py | 12 | ||||
| -rw-r--r-- | tests/test_functions.py | 1 | ||||
| -rw-r--r-- | tests/test_grouping.py | 27 | ||||
| -rw-r--r-- | tests/test_parse.py | 17 | ||||
| -rw-r--r-- | tests/test_pipeline.py | 8 | ||||
| -rw-r--r-- | tests/test_regressions.py | 10 | ||||
| -rw-r--r-- | tests/test_split.py | 48 | ||||
| -rw-r--r-- | tests/test_tokenize.py | 23 | ||||
| -rw-r--r-- | tests/utils.py | 12 |
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()) |
