summaryrefslogtreecommitdiff
path: root/tests/test_format.py
diff options
context:
space:
mode:
authorFredy Wijaya <fredy.wijaya@gmail.com>2018-12-13 16:44:29 -0600
committerAndi Albrecht <albrecht.andi@gmail.com>2019-03-10 08:03:05 +0100
commitfa7def01d00fc7c5c3047b077bc0f1a4cdc1d10a (patch)
tree2187017bc7dd709028d8f9e505cb6f4be2ed1ae6 /tests/test_format.py
parent53dd1d566aefef305b13030cac14ae6fa71cadf7 (diff)
downloadsqlparse-fa7def01d00fc7c5c3047b077bc0f1a4cdc1d10a.tar.gz
Fix formatting on INSERT (fixes #329)
This patch fixes the formatting on INSERT by creating a new instance of sql.Values to group all the values. SQL: insert into foo values (1, 'foo'), (2, 'bar'), (3, 'baz') Before: insert into foo values (1, 'foo'), (2, 'bar'), (3, 'baz') After: insert into foo values (1, 'foo'), (2, 'bar'), (3, 'baz')
Diffstat (limited to 'tests/test_format.py')
-rw-r--r--tests/test_format.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test_format.py b/tests/test_format.py
index acee9ac..a95b3d1 100644
--- a/tests/test_format.py
+++ b/tests/test_format.py
@@ -554,6 +554,49 @@ class TestFormatReindent(object):
' nvl(1)',
'from dual'])
+ def test_insert_values(self):
+ # issue 329
+ f = lambda sql: sqlparse.format(sql, reindent=True)
+ s = 'insert into foo values (1, 2)'
+ assert f(s) == '\n'.join([
+ 'insert into foo',
+ 'values (1, 2)'])
+
+ s = 'insert into foo values (1, 2), (3, 4), (5, 6)'
+ assert f(s) == '\n'.join([
+ 'insert into foo',
+ 'values (1, 2),',
+ ' (3, 4),',
+ ' (5, 6)'])
+
+ s = 'insert into foo(a, b) values (1, 2), (3, 4), (5, 6)'
+ assert f(s) == '\n'.join([
+ 'insert into foo(a, b)',
+ 'values (1, 2),',
+ ' (3, 4),',
+ ' (5, 6)'])
+
+ f = lambda sql: sqlparse.format(sql, reindent=True,
+ comma_first=True)
+ s = 'insert into foo values (1, 2)'
+ assert f(s) == '\n'.join([
+ 'insert into foo',
+ 'values (1, 2)'])
+
+ s = 'insert into foo values (1, 2), (3, 4), (5, 6)'
+ assert f(s) == '\n'.join([
+ 'insert into foo',
+ 'values (1, 2)',
+ ' , (3, 4)',
+ ' , (5, 6)'])
+
+ s = 'insert into foo(a, b) values (1, 2), (3, 4), (5, 6)'
+ assert f(s) == '\n'.join([
+ 'insert into foo(a, b)',
+ 'values (1, 2)',
+ ' , (3, 4)',
+ ' , (5, 6)'])
+
class TestOutputFormat(object):
def test_python(self):