@@ -80,19 +80,15 @@ def test_to_protobuf_w_kind(self):
8080 kq_pb , = list (q_pb .kind )
8181 self .assertEqual (kq_pb .name , _KIND )
8282
83- def test_filter_w_no_operator (self ):
84- query = self ._makeOne ()
85- self .assertRaises (ValueError , query .filter , 'firstname' , 'John' )
86-
8783 def test_filter_w_unknown_operator (self ):
8884 query = self ._makeOne ()
89- self .assertRaises (ValueError , query .filter , 'firstname ~~' , 'John' )
85+ self .assertRaises (ValueError , query .filter , 'firstname' , ' ~~' , 'John' )
9086
9187 def test_filter_w_known_operator (self ):
9288 from gcloud .datastore import datastore_v1_pb2 as datastore_pb
9389
9490 query = self ._makeOne ()
95- after = query .filter ('firstname =' , u'John' )
91+ after = query .filter ('firstname' , ' =' , u'John' )
9692 self .assertFalse (after is query )
9793 self .assertTrue (isinstance (after , self ._getTargetClass ()))
9894 q_pb = after .to_protobuf ()
@@ -108,11 +104,11 @@ def test_filter_w_all_operators(self):
108104 from gcloud .datastore import datastore_v1_pb2 as datastore_pb
109105
110106 query = self ._makeOne ()
111- query = query .filter ('leq_prop <=' , u'val1' )
112- query = query .filter ('geq_prop >=' , u'val2' )
113- query = query .filter ('lt_prop <' , u'val3' )
114- query = query .filter ('gt_prop >' , u'val4' )
115- query = query .filter ('eq_prop =' , u'val5' )
107+ query = query .filter ('leq_prop' , ' <=' , u'val1' )
108+ query = query .filter ('geq_prop' , ' >=' , u'val2' )
109+ query = query .filter ('lt_prop' , ' <' , u'val3' )
110+ query = query .filter ('gt_prop' , ' >' , u'val4' )
111+ query = query .filter ('eq_prop' , ' =' , u'val5' )
116112
117113 query_pb = query .to_protobuf ()
118114 pb_values = [
@@ -139,7 +135,7 @@ def test_filter_w_known_operator_and_entity(self):
139135 other = Entity ()
140136 other ['firstname' ] = u'John'
141137 other ['lastname' ] = u'Smith'
142- after = query .filter ('other =' , other )
138+ after = query .filter ('other' , ' =' , other )
143139 self .assertFalse (after is query )
144140 self .assertTrue (isinstance (after , self ._getTargetClass ()))
145141 q_pb = after .to_protobuf ()
@@ -155,6 +151,23 @@ def test_filter_w_known_operator_and_entity(self):
155151 self .assertEqual (props [1 ].name , 'lastname' )
156152 self .assertEqual (props [1 ].value .string_value , u'Smith' )
157153
154+ def test_filter_w_whitespace_property_name (self ):
155+ from gcloud .datastore import datastore_v1_pb2 as datastore_pb
156+
157+ query = self ._makeOne ()
158+ PROPERTY_NAME = ' property with lots of space '
159+ after = query .filter (PROPERTY_NAME , '=' , u'John' )
160+ self .assertFalse (after is query )
161+ self .assertTrue (isinstance (after , self ._getTargetClass ()))
162+ q_pb = after .to_protobuf ()
163+ self .assertEqual (q_pb .filter .composite_filter .operator ,
164+ datastore_pb .CompositeFilter .AND )
165+ f_pb , = list (q_pb .filter .composite_filter .filter )
166+ p_pb = f_pb .property_filter
167+ self .assertEqual (p_pb .property .name , PROPERTY_NAME )
168+ self .assertEqual (p_pb .value .string_value , u'John' )
169+ self .assertEqual (p_pb .operator , datastore_pb .PropertyFilter .EQUAL )
170+
158171 def test_ancestor_w_non_key_non_list (self ):
159172 query = self ._makeOne ()
160173 self .assertRaises (TypeError , query .ancestor , object ())
@@ -165,7 +178,7 @@ def test_ancestor_wo_existing_ancestor_query_w_key_and_propfilter(self):
165178 _ID = 123
166179 _NAME = u'NAME'
167180 key = Key (path = [{'kind' : _KIND , 'id' : _ID }])
168- query = self ._makeOne ().filter ('name =' , _NAME )
181+ query = self ._makeOne ().filter ('name' , ' =' , _NAME )
169182 after = query .ancestor (key )
170183 self .assertFalse (after is query )
171184 self .assertTrue (isinstance (after , self ._getTargetClass ()))
@@ -226,7 +239,7 @@ def test_ancestor_clears_existing_ancestor_query_w_others(self):
226239 _KIND = 'KIND'
227240 _ID = 123
228241 _NAME = u'NAME'
229- query = self ._makeOne ().filter ('name =' , _NAME )
242+ query = self ._makeOne ().filter ('name' , ' =' , _NAME )
230243 between = query .ancestor ([_KIND , _ID ])
231244 after = between .ancestor (None )
232245 self .assertFalse (after is query )
0 commit comments