summaryrefslogtreecommitdiff
path: root/tests/test_format.py
diff options
context:
space:
mode:
authorMichael Schuller <michael.schuller@artlogic.net>2014-03-07 18:01:41 +0000
committerMichael Schuller <michael.schuller@artlogic.net>2014-03-10 12:20:38 +0000
commit480e52fddf28fad591f3214ee28c2d2af8842ce1 (patch)
treead9fe3c141c22113769a7f50b588f1d8c6156819 /tests/test_format.py
parentff7ba6404342898616be24115f7be4744520289d (diff)
downloadsqlparse-480e52fddf28fad591f3214ee28c2d2af8842ce1.tar.gz
Fix SerializerUnicode to split unquoted newlines
This provides a fix to issue #131. The `split_unquoted_newlines()` function added to the utils module handles the splitting of the string by performing a simple iteration of the string passed in and splitting on unquoted CR, LF, or CR+LFs as they are found.
Diffstat (limited to 'tests/test_format.py')
-rw-r--r--tests/test_format.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_format.py b/tests/test_format.py
index 701540b..b77b7a1 100644
--- a/tests/test_format.py
+++ b/tests/test_format.py
@@ -77,6 +77,23 @@ class TestFormat(TestCaseBase):
s = 'select\n* /* foo */ from bar '
self.ndiffAssertEqual(f(s), 'select * /* foo */ from bar')
+ def test_notransform_of_quoted_crlf(self):
+ # Make sure that CR/CR+LF characters inside string literals don't get
+ # affected by the formatter.
+
+ s1 = "SELECT some_column LIKE 'value\r'"
+ s2 = "SELECT some_column LIKE 'value\r'\r\nWHERE id = 1\n"
+ s3 = "SELECT some_column LIKE 'value\\'\r' WHERE id = 1\r"
+ s4 = "SELECT some_column LIKE 'value\\\\\\'\r' WHERE id = 1\r\n"
+
+ 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")
+
def test_outputformat(self):
sql = 'select * from foo;'
self.assertRaises(SQLParseError, sqlparse.format, sql,