File tree 3 files changed +30
-5
lines changed
3 files changed +30
-5
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ def quote_string(v):
25
25
if len (v ) == 0 :
26
26
return '""'
27
27
28
+ v = v .replace ('\\ ' , '\\ \\ ' )
28
29
v = v .replace ('"' , '\\ "' )
29
30
30
31
return '"{}"' .format (v )
Original file line number Diff line number Diff line change @@ -101,6 +101,29 @@ def test_path(self):
101
101
# All done, remove graph.
102
102
redis_graph .delete ()
103
103
104
+ def test_properties_with_escapes (self ):
105
+ redis_graph = Graph ('props' , self .r )
106
+
107
+ message = r'This raw string has \ a backslash character in it.'
108
+ params = {'message' : message }
109
+ query = """CREATE (:Foo {message: $message})"""
110
+ redis_graph .query (query , params )
111
+
112
+ query = """MATCH (u:Foo) RETURN u.message"""
113
+ result = redis_graph .query (query )
114
+ self .assertEqual (result .result_set [0 ][0 ], message )
115
+
116
+ message = r'This raw string has \" a quote preceded by backslash.'
117
+ params = {'message' : message }
118
+ query = """CREATE (:Bar {message: $message})"""
119
+ redis_graph .query (query , params )
120
+
121
+ query = """MATCH (u:Bar) RETURN u.message"""
122
+ result = redis_graph .query (query )
123
+ self .assertEqual (result .result_set [0 ][0 ], message )
124
+
125
+ redis_graph .delete ()
126
+
104
127
def test_param (self ):
105
128
redis_graph = Graph ('params' , self .r )
106
129
Original file line number Diff line number Diff line change @@ -12,11 +12,12 @@ def test_random_string(self):
12
12
13
13
def test_quote_string (self ):
14
14
self .assertEqual (util .quote_string (10 ), 10 )
15
- self .assertEqual (util .quote_string ("abc" ), '"abc"' )
16
- self .assertEqual (util .quote_string ("" ), '""' )
17
- self .assertEqual (util .quote_string ('\" ' ), '"\\ \" "' )
18
- self .assertEqual (util .quote_string ('"' ), '"\\ ""' )
19
- self .assertEqual (util .quote_string ('a"a' ), '"a\\ "a"' )
15
+ self .assertEqual (util .quote_string ('abc' ), '"abc"' )
16
+ self .assertEqual (util .quote_string ('' ), '""' )
17
+ self .assertEqual (util .quote_string ('"' ), r'"\""' )
18
+ self .assertEqual (util .quote_string (r'foo \ bar' ), r'"foo \\ bar"' )
19
+ self .assertEqual (util .quote_string (r'foo \" bar' ), r'"foo \\\" bar"' )
20
+ self .assertEqual (util .quote_string ('a"a' ), r'"a\"a"' )
20
21
21
22
def test_stringify_param_value (self ):
22
23
cases = [
You can’t perform that action at this time.
0 commit comments