Skip to content

Commit

Permalink
Do not remove newlines in sql_quote.
Browse files Browse the repository at this point in the history
  • Loading branch information
mauritsvanrees committed Jan 31, 2020
1 parent 5743bdd commit bcbb484
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/DocumentTemplate/DT_Var.py
Expand Up @@ -514,8 +514,8 @@ def structured_text(v, name='(Unknown name)', md={}):

# Searching and replacing a byte in text, or text in bytes,
# may give various errors on Python 2 or 3. So we make separate functions
REMOVE_BYTES = (b'\x00', b'\x1a', b'\n', b'\r')
REMOVE_TEXT = (u'\x00', u'\x1a', u'\n', u'\r')
REMOVE_BYTES = (b'\x00', b'\x1a', b'\r')
REMOVE_TEXT = (u'\x00', u'\x1a', u'\r')
DOUBLE_BYTES = (b"'", b'\\')
DOUBLE_TEXT = (u"'", u'\\')
ESCAPE_BYTES = (b'"',)
Expand Down
17 changes: 17 additions & 0 deletions src/DocumentTemplate/tests/test_DT_Var.py
Expand Up @@ -115,6 +115,11 @@ def test_bytes_sql_quote(self):
self.assertEqual(
bytes_sql_quote(b'\x00Hello\x00\x00World\x00'), b'HelloWorld')

self.assertEqual(
bytes_sql_quote(b"carriage\rreturn"), b"carriagereturn")
self.assertEqual(bytes_sql_quote(b"line\nbreak"), b"line\nbreak")
self.assertEqual(bytes_sql_quote(b"tab\t"), b"tab\t")

def test_text_sql_quote(self):
from DocumentTemplate.DT_Var import text_sql_quote
self.assertEqual(text_sql_quote(u""), u"")
Expand All @@ -137,6 +142,11 @@ def test_text_sql_quote(self):
self.assertEqual(
text_sql_quote(u'\x00Hello\x00\x00World\x00'), u'HelloWorld')

self.assertEqual(
text_sql_quote(u"carriage\rreturn"), u"carriagereturn")
self.assertEqual(text_sql_quote(u"line\nbreak"), u"line\nbreak")
self.assertEqual(text_sql_quote(u"tab\t"), u"tab\t")

def test_sql_quote(self):
from DocumentTemplate.DT_Var import sql_quote
self.assertEqual(sql_quote(u""), u"")
Expand Down Expand Up @@ -166,3 +176,10 @@ def test_sql_quote(self):
self.assertEqual(u"\xea".encode("utf-8"), b"\xc3\xaa")
self.assertEqual(sql_quote(u"\xea'"), u"\xea''")
self.assertEqual(sql_quote(b"\xc3\xaa'"), b"\xc3\xaa''")

self.assertEqual(
sql_quote(b"carriage\rreturn"), b"carriagereturn")
self.assertEqual(
sql_quote(u"carriage\rreturn"), u"carriagereturn")
self.assertEqual(sql_quote(u"line\nbreak"), u"line\nbreak")
self.assertEqual(sql_quote(u"tab\t"), u"tab\t")

0 comments on commit bcbb484

Please sign in to comment.