@@ -24,15 +24,41 @@ def test_escape_string_normal(self):
24
24
25
25
assert pe .escape_string ("golly bob howdy" ) == "'golly bob howdy'"
26
26
27
- def test_escape_string_that_includes_single_quotes (self ):
28
- # e.g. INPUT: his name was 'robert palmer'
29
- # e.g. OUTPUT: 'his name was ''robert palmer'''
27
+ def test_escape_string_that_includes_special_characters (self ):
28
+ """Tests for how special characters are treated.
30
29
31
- assert pe .escape_string ("his name was 'robert palmer'" ) == "'his name was ''robert palmer'''"
30
+ When passed a string, the `escape_string` method wraps it in single quotes
31
+ and escapes any special characters with a back stroke (\)
32
32
33
- def test_escape_string_that_includes_special_characters (self ):
33
+ Example:
34
+
35
+ IN : his name was 'robert palmer'
36
+ OUT: 'his name was \' robert palmer\' '
37
+ """
38
+
39
+ # Testing for the presence of these characters: '"/\😂
40
+
41
+ assert pe .escape_string ("his name was 'robert palmer'" ) == "'his name was \' robert palmer\' '"
42
+
43
+ # These two tests represent the same user input in the several ways it can be written in Python
44
+ # Each argument to `escape_string` evaluates to the same bytes. But Python lets us write it differently.
45
+ assert pe .escape_string ("his name was \" robert palmer\" " ) == "'his name was \" robert palmer\" '"
46
+ assert pe .escape_string ('his name was "robert palmer"' ) == "'his name was \" robert palmer\" '"
47
+ assert pe .escape_string ('his name was {}' .format ('"robert palmer"' )) == "'his name was \" robert palmer\" '"
48
+
49
+ assert pe .escape_string ("his name was robert / palmer" ) == "'his name was robert / palmer'"
50
+
51
+ # If you need to include a single backslash, use an r-string to prevent Python from raising a
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'"
56
+
57
+ assert pe .escape_string ("his name was robert palmer 😂" ) == "'his name was robert palmer 😂'"
58
+
59
+ # Adding the test from PR #56 to prove escape behaviour
34
60
35
- assert pe .escape_string ("his name was 'robert palmer' " ) == "'his name was ''robert palmer'' '"
61
+ assert pe .escape_string ("you're " ) == "'you \' re '"
36
62
37
63
def test_escape_date_time (self ):
38
64
INPUT = datetime (1991 ,8 ,3 ,21 ,55 )
0 commit comments