@@ -77,19 +77,15 @@ def test_to_protobuf_w_kind(self):
7777 kq_pb , = list (q_pb .kind )
7878 self .assertEqual (kq_pb .name , _KIND )
7979
80- def test_filter_w_no_operator (self ):
81- query = self ._makeOne ()
82- self .assertRaises (ValueError , query .filter , 'firstname' , 'John' )
83-
8480 def test_filter_w_unknown_operator (self ):
8581 query = self ._makeOne ()
86- self .assertRaises (ValueError , query .filter , 'firstname ~~' , 'John' )
82+ self .assertRaises (ValueError , query .filter , 'firstname' , ' ~~' , 'John' )
8783
8884 def test_filter_w_known_operator (self ):
8985 from gcloud .datastore import datastore_v1_pb2 as datastore_pb
9086
9187 query = self ._makeOne ()
92- after = query .filter ('firstname =' , u'John' )
88+ after = query .filter ('firstname' , ' =' , u'John' )
9389 self .assertFalse (after is query )
9490 self .assertTrue (isinstance (after , self ._getTargetClass ()))
9591 q_pb = after .to_protobuf ()
@@ -105,11 +101,11 @@ def test_filter_w_all_operators(self):
105101 from gcloud .datastore import datastore_v1_pb2 as datastore_pb
106102
107103 query = self ._makeOne ()
108- query = query .filter ('leq_prop <=' , u'val1' )
109- query = query .filter ('geq_prop >=' , u'val2' )
110- query = query .filter ('lt_prop <' , u'val3' )
111- query = query .filter ('gt_prop >' , u'val4' )
112- query = query .filter ('eq_prop =' , u'val5' )
104+ query = query .filter ('leq_prop' , ' <=' , u'val1' )
105+ query = query .filter ('geq_prop' , ' >=' , u'val2' )
106+ query = query .filter ('lt_prop' , ' <' , u'val3' )
107+ query = query .filter ('gt_prop' , ' >' , u'val4' )
108+ query = query .filter ('eq_prop' , ' =' , u'val5' )
113109
114110 query_pb = query .to_protobuf ()
115111 pb_values = [
@@ -136,7 +132,7 @@ def test_filter_w_known_operator_and_entity(self):
136132 other = Entity ()
137133 other ['firstname' ] = u'John'
138134 other ['lastname' ] = u'Smith'
139- after = query .filter ('other =' , other )
135+ after = query .filter ('other' , ' =' , other )
140136 self .assertFalse (after is query )
141137 self .assertTrue (isinstance (after , self ._getTargetClass ()))
142138 q_pb = after .to_protobuf ()
@@ -152,6 +148,23 @@ def test_filter_w_known_operator_and_entity(self):
152148 self .assertEqual (props [1 ].name , 'lastname' )
153149 self .assertEqual (props [1 ].value .string_value , u'Smith' )
154150
151+ def test_filter_w_whitespace_property_name (self ):
152+ from gcloud .datastore import datastore_v1_pb2 as datastore_pb
153+
154+ query = self ._makeOne ()
155+ PROPERTY_NAME = ' property with lots of space '
156+ after = query .filter (PROPERTY_NAME , '=' , u'John' )
157+ self .assertFalse (after is query )
158+ self .assertTrue (isinstance (after , self ._getTargetClass ()))
159+ q_pb = after .to_protobuf ()
160+ self .assertEqual (q_pb .filter .composite_filter .operator ,
161+ datastore_pb .CompositeFilter .AND )
162+ f_pb , = list (q_pb .filter .composite_filter .filter )
163+ p_pb = f_pb .property_filter
164+ self .assertEqual (p_pb .property .name , PROPERTY_NAME )
165+ self .assertEqual (p_pb .value .string_value , u'John' )
166+ self .assertEqual (p_pb .operator , datastore_pb .PropertyFilter .EQUAL )
167+
155168 def test_ancestor_w_non_key_non_list (self ):
156169 query = self ._makeOne ()
157170 self .assertRaises (TypeError , query .ancestor , object ())
@@ -162,7 +175,7 @@ def test_ancestor_wo_existing_ancestor_query_w_key_and_propfilter(self):
162175 _ID = 123
163176 _NAME = u'NAME'
164177 key = Key (path = [{'kind' : _KIND , 'id' : _ID }])
165- query = self ._makeOne ().filter ('name =' , _NAME )
178+ query = self ._makeOne ().filter ('name' , ' =' , _NAME )
166179 after = query .ancestor (key )
167180 self .assertFalse (after is query )
168181 self .assertTrue (isinstance (after , self ._getTargetClass ()))
@@ -223,7 +236,7 @@ def test_ancestor_clears_existing_ancestor_query_w_others(self):
223236 _KIND = 'KIND'
224237 _ID = 123
225238 _NAME = u'NAME'
226- query = self ._makeOne ().filter ('name =' , _NAME )
239+ query = self ._makeOne ().filter ('name' , ' =' , _NAME )
227240 between = query .ancestor ([_KIND , _ID ])
228241 after = between .ancestor (None )
229242 self .assertFalse (after is query )
0 commit comments