@@ -38,27 +38,39 @@ def test_escape_string_that_includes_special_characters(self):
38
38
39
39
# Testing for the presence of these characters: '"/\😂
40
40
41
- assert pe .escape_string ("his name was 'robert palmer'" ) == "'his name was \' robert palmer\' '"
41
+ assert pe .escape_string ("his name was 'robert palmer'" ) == r "'his name was \'robert palmer\''"
42
42
43
43
# These two tests represent the same user input in the several ways it can be written in Python
44
44
# Each argument to `escape_string` evaluates to the same bytes. But Python lets us write it differently.
45
45
assert pe .escape_string ("his name was \" robert palmer\" " ) == "'his name was \" robert palmer\" '"
46
46
assert pe .escape_string ('his name was "robert palmer"' ) == "'his name was \" robert palmer\" '"
47
47
assert pe .escape_string ('his name was {}' .format ('"robert palmer"' )) == "'his name was \" robert palmer\" '"
48
48
49
- assert pe .escape_string ("his name was robert / palmer" ) == "'his name was robert / palmer'"
49
+ assert pe .escape_string ("his name was robert / palmer" ) == r "'his name was robert / palmer'"
50
50
51
51
# If you need to include a single backslash, use an r-string to prevent Python from raising a
52
52
# DeprecationWarning for an invalid escape sequence
53
- assert pe .escape_string (r "his name was robert \/ palmer" ) == "'his name was robert \\ / palmer'"
54
- assert pe .escape_string ("his name was robert \\ palmer" ) == "'his name was robert \\ palmer'"
55
- assert pe .escape_string ("his name was robert \\ \\ palmer" ) == "'his name was robert \\ \\ palmer'"
53
+ assert pe .escape_string ("his name was robert \\ / palmer" ) == r "'his name was robert \\/ palmer'"
54
+ assert pe .escape_string ("his name was robert \\ palmer" ) == r "'his name was robert \\ palmer'"
55
+ assert pe .escape_string ("his name was robert \\ \\ palmer" ) == r "'his name was robert \\\\ palmer'"
56
56
57
- assert pe .escape_string ("his name was robert palmer 😂" ) == "'his name was robert palmer 😂'"
57
+ assert pe .escape_string ("his name was robert palmer 😂" ) == r "'his name was robert palmer 😂'"
58
58
59
59
# Adding the test from PR #56 to prove escape behaviour
60
60
61
- assert pe .escape_string ("you're" ) == "'you\' re'"
61
+ assert pe .escape_string ("you're" ) == r"'you\'re'"
62
+
63
+ # Adding this test from #51 to prove escape behaviour when the target string involves repeated SQL escape chars
64
+ assert pe .escape_string ("cat\\ 's meow" ) == r"'cat\\\'s meow'"
65
+
66
+ # Tests from the docs: https://docs.databricks.com/sql/language-manual/data-types/string-type.html
67
+
68
+ assert pe .escape_string ('Spark' ) == "'Spark'"
69
+ assert pe .escape_string ("O'Connell" ) == r"'O\'Connell'"
70
+ assert pe .escape_string ("Some\\ nText" ) == r"'Some\\nText'"
71
+ assert pe .escape_string ("Some\\ \\ nText" ) == r"'Some\\\\nText'"
72
+ assert pe .escape_string ("서울시" ) == "'서울시'"
73
+ assert pe .escape_string ("\\ \\ " ) == r"'\\\\'"
62
74
63
75
def test_escape_date_time (self ):
64
76
INPUT = datetime (1991 ,8 ,3 ,21 ,55 )
0 commit comments