Skip to content

Commit

Permalink
Remove separate escape_string function.
Browse files Browse the repository at this point in the history
  • Loading branch information
dnwpark committed Mar 15, 2024
1 parent 251d3c9 commit 714fd4d
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 87 deletions.
37 changes: 0 additions & 37 deletions edb/common/string.py

This file was deleted.

20 changes: 19 additions & 1 deletion edb/edgeql/quote.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

import re

from edb.common.string import escape_string
from .parser.grammar import keywords


Expand All @@ -37,6 +36,25 @@


def quote_literal(string: str) -> str:

def escape_string(s: str) -> str:
# characters escaped according to
# https://www.edgedb.com/docs/reference/edgeql/lexical#strings
result = s

# escape backslash first
result = result.replace('\\', '\\\\')

result = result.replace('\'', '\\\'')
result = result.replace('\"', '\\\"')
result = result.replace('\b', '\\b')
result = result.replace('\f', '\\f')
result = result.replace('\n', '\\n')
result = result.replace('\r', '\\r')
result = result.replace('\t', '\\t')

return result

return "'" + escape_string(string) + "'"


Expand Down
48 changes: 0 additions & 48 deletions tests/common/test_string.py

This file was deleted.

21 changes: 20 additions & 1 deletion tests/edgeql/test_quote.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,24 @@
class QuoteTests(unittest.TestCase):

def test_quote_string(self):
self.assertEqual(qlquote.quote_literal(""), "''"),
self.assertEqual(qlquote.quote_literal("abc"), "'abc'")
self.assertEqual(qlquote.quote_literal("abc\\\n"), "'abc\\\\\\n'")
self.assertEqual(qlquote.quote_literal("\b"), "'\\b'")
self.assertEqual(qlquote.quote_literal("\f"), "'\\f'")
self.assertEqual(qlquote.quote_literal("\n"), "'\\n'")
self.assertEqual(qlquote.quote_literal("\r"), "'\\r'")
self.assertEqual(qlquote.quote_literal("\t"), "'\\t'")
self.assertEqual(qlquote.quote_literal("\'"), "'\\\''")
self.assertEqual(qlquote.quote_literal("\""), "'\\\"'")
self.assertEqual(qlquote.quote_literal("\\"), "'\\\\'")
self.assertEqual(qlquote.quote_literal("\\b"), "'\\\\b'")
self.assertEqual(qlquote.quote_literal("\\f"), "'\\\\f'")
self.assertEqual(qlquote.quote_literal("\\n"), "'\\\\n'")
self.assertEqual(qlquote.quote_literal("\\r"), "'\\\\r'")
self.assertEqual(qlquote.quote_literal("\\t"), "'\\\\t'")
self.assertEqual(qlquote.quote_literal("\\\'"), "'\\\\\\\''")
self.assertEqual(qlquote.quote_literal("\\\""), "'\\\\\\\"'")
self.assertEqual(qlquote.quote_literal("\\\\"), "'\\\\\\\\'")
self.assertEqual(qlquote.quote_literal(
"abc\"efg\nhij\'klm\\nop"),
"'abc\\\"efg\\nhij\\\'klm\\\\nop'")

0 comments on commit 714fd4d

Please sign in to comment.