[2/8] impala git commit: IMPALA-6999: Upgrade to sqlparse-0.1.19 for Impala shell
http://git-wip-us.apache.org/repos/asf/impala/blob/417bc8c8/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py -- diff --git a/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py b/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py new file mode 100644 index 000..a64b400 --- /dev/null +++ b/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py @@ -0,0 +1,276 @@ +# -*- coding: utf-8 -*- + +import sys + +from tests.utils import TestCaseBase, load_file + +import sqlparse +from sqlparse import sql +from sqlparse import tokens as T + + +class RegressionTests(TestCaseBase): + +def test_issue9(self): +# make sure where doesn't consume parenthesis +p = sqlparse.parse('(where 1)')[0] +self.assert_(isinstance(p, sql.Statement)) +self.assertEqual(len(p.tokens), 1) +self.assert_(isinstance(p.tokens[0], sql.Parenthesis)) +prt = p.tokens[0] +self.assertEqual(len(prt.tokens), 3) +self.assertEqual(prt.tokens[0].ttype, T.Punctuation) +self.assertEqual(prt.tokens[-1].ttype, T.Punctuation) + +def test_issue13(self): +parsed = sqlparse.parse(("select 'one';\n" + "select 'two\\'';\n" + "select 'three';")) +self.assertEqual(len(parsed), 3) +self.assertEqual(str(parsed[1]).strip(), "select 'two\\'';") + +def test_issue26(self): +# parse stand-alone comments +p = sqlparse.parse('--hello')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('-- hello')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('--hello\n')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('--')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('--\n')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) + +def test_issue34(self): +t = sqlparse.parse("create")[0].token_first() +self.assertEqual(t.match(T.Keyword.DDL, "create"), True) +self.assertEqual(t.match(T.Keyword.DDL, "CREATE"), True) + +def test_issue35(self): +# missing space before LIMIT +sql = sqlparse.format("select * from foo where bar = 1 limit 1", + reindent=True) +self.ndiffAssertEqual(sql, "\n".join(["select *", + "from foo", + "where bar = 1 limit 1"])) + +def test_issue38(self): +sql = sqlparse.format("SELECT foo; -- comment", + strip_comments=True) +self.ndiffAssertEqual(sql, "SELECT foo;") +sql = sqlparse.format("/* foo */", strip_comments=True) +self.ndiffAssertEqual(sql, "") + +def test_issue39(self): +p = sqlparse.parse('select user.id from user')[0] +self.assertEqual(len(p.tokens), 7) +idt = p.tokens[2] +self.assertEqual(idt.__class__, sql.Identifier) +self.assertEqual(len(idt.tokens), 3) +self.assertEqual(idt.tokens[0].match(T.Name, 'user'), True) +self.assertEqual(idt.tokens[1].match(T.Punctuation, '.'), True) +self.assertEqual(idt.tokens[2].match(T.Name, 'id'), True) + +def test_issue40(self): +# make sure identifier lists in subselects are grouped +p = sqlparse.parse(('SELECT id, name FROM ' +'(SELECT id, name FROM bar) as foo'))[0] +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') +sp = p.tokens[-1].tokens[0] +self.assertEqual(sp.tokens[3].__class__, sql.IdentifierList) +# make sure that formatting works as expected +self.ndiffAssertEqual( +sqlparse.format(('SELECT id, name FROM ' + '(SELECT id, name FROM bar)'), +reindent=True), +('SELECT id,\n' + ' name\n' + 'FROM\n' + ' (SELECT id,\n' + ' name\n' + ' FROM bar)')) +self.ndiffAssertEqual( +sqlparse.format(('SELECT id, name FROM ' + '(SELECT id, name FROM bar) as foo'), +reindent=True), +('SELECT id,\n' + ' name\n' + 'FROM\n' + ' (SELECT id,\n' + ' name\n' + ' FROM bar) as foo')) + + +def
[2/8] impala git commit: IMPALA-6999: Upgrade to sqlparse-0.1.19 for Impala shell
http://git-wip-us.apache.org/repos/asf/impala/blob/49413d9c/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py -- diff --git a/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py b/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py new file mode 100644 index 000..a64b400 --- /dev/null +++ b/shell/ext-py/sqlparse-0.1.19/tests/test_regressions.py @@ -0,0 +1,276 @@ +# -*- coding: utf-8 -*- + +import sys + +from tests.utils import TestCaseBase, load_file + +import sqlparse +from sqlparse import sql +from sqlparse import tokens as T + + +class RegressionTests(TestCaseBase): + +def test_issue9(self): +# make sure where doesn't consume parenthesis +p = sqlparse.parse('(where 1)')[0] +self.assert_(isinstance(p, sql.Statement)) +self.assertEqual(len(p.tokens), 1) +self.assert_(isinstance(p.tokens[0], sql.Parenthesis)) +prt = p.tokens[0] +self.assertEqual(len(prt.tokens), 3) +self.assertEqual(prt.tokens[0].ttype, T.Punctuation) +self.assertEqual(prt.tokens[-1].ttype, T.Punctuation) + +def test_issue13(self): +parsed = sqlparse.parse(("select 'one';\n" + "select 'two\\'';\n" + "select 'three';")) +self.assertEqual(len(parsed), 3) +self.assertEqual(str(parsed[1]).strip(), "select 'two\\'';") + +def test_issue26(self): +# parse stand-alone comments +p = sqlparse.parse('--hello')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('-- hello')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('--hello\n')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('--')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) +p = sqlparse.parse('--\n')[0] +self.assertEqual(len(p.tokens), 1) +self.assert_(p.tokens[0].ttype is T.Comment.Single) + +def test_issue34(self): +t = sqlparse.parse("create")[0].token_first() +self.assertEqual(t.match(T.Keyword.DDL, "create"), True) +self.assertEqual(t.match(T.Keyword.DDL, "CREATE"), True) + +def test_issue35(self): +# missing space before LIMIT +sql = sqlparse.format("select * from foo where bar = 1 limit 1", + reindent=True) +self.ndiffAssertEqual(sql, "\n".join(["select *", + "from foo", + "where bar = 1 limit 1"])) + +def test_issue38(self): +sql = sqlparse.format("SELECT foo; -- comment", + strip_comments=True) +self.ndiffAssertEqual(sql, "SELECT foo;") +sql = sqlparse.format("/* foo */", strip_comments=True) +self.ndiffAssertEqual(sql, "") + +def test_issue39(self): +p = sqlparse.parse('select user.id from user')[0] +self.assertEqual(len(p.tokens), 7) +idt = p.tokens[2] +self.assertEqual(idt.__class__, sql.Identifier) +self.assertEqual(len(idt.tokens), 3) +self.assertEqual(idt.tokens[0].match(T.Name, 'user'), True) +self.assertEqual(idt.tokens[1].match(T.Punctuation, '.'), True) +self.assertEqual(idt.tokens[2].match(T.Name, 'id'), True) + +def test_issue40(self): +# make sure identifier lists in subselects are grouped +p = sqlparse.parse(('SELECT id, name FROM ' +'(SELECT id, name FROM bar) as foo'))[0] +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') +sp = p.tokens[-1].tokens[0] +self.assertEqual(sp.tokens[3].__class__, sql.IdentifierList) +# make sure that formatting works as expected +self.ndiffAssertEqual( +sqlparse.format(('SELECT id, name FROM ' + '(SELECT id, name FROM bar)'), +reindent=True), +('SELECT id,\n' + ' name\n' + 'FROM\n' + ' (SELECT id,\n' + ' name\n' + ' FROM bar)')) +self.ndiffAssertEqual( +sqlparse.format(('SELECT id, name FROM ' + '(SELECT id, name FROM bar) as foo'), +reindent=True), +('SELECT id,\n' + ' name\n' + 'FROM\n' + ' (SELECT id,\n' + ' name\n' + ' FROM bar) as foo')) + + +def