@@ -83,6 +83,27 @@ def test_erlang_map_reduce(self):
8383 .run ()
8484 self .assertEqual (len (result ), 2 )
8585
86+ def test_client_exceptional_paths (self ):
87+ bucket = self .client .bucket ('bucket' )
88+ bucket .new ("foo" , 2 ).store ()
89+ bucket .new ("bar" , 2 ).store ()
90+ bucket .new ("baz" , 4 ).store ()
91+
92+ #adding a b-key pair to a bucket input
93+ with self .assertRaises (ValueError ):
94+ mr = self .client .add ('bucket' )
95+ mr .add ('bucket' , 'bar' )
96+
97+ #adding a b-key pair to a query input
98+ with self .assertRaises (ValueError ):
99+ mr = self .client .search ('bucket' , 'fleh' )
100+ mr .add ('bucket' , 'bar' )
101+
102+ #adding a key filter to a query input
103+ with self .assertRaises (ValueError ):
104+ mr = self .client .search ('bucket' , 'fleh' )
105+ mr .add_key_filter ("tokenize" , "-" , 1 )
106+
86107
87108class JSMapReduceTests (object ):
88109 def test_javascript_source_map (self ):
@@ -229,6 +250,66 @@ def test_map_reduce_from_object(self):
229250 result = obj .map ("Riak.mapValuesJson" ).run ()
230251 self .assertEqual (result , [2 ])
231252
253+ def test_mr_list_add (self ):
254+ bucket = self .client .bucket ("abucket" )
255+ for x in range (20 ):
256+ bucket .new ('baz' + str (x ),
257+ 'bazval' + str (x )).store ()
258+ mr = self .client .add ('abucket' , ['baz' + str (x )
259+ for x in range (2 , 5 )])
260+ results = mr .map_values ().run ()
261+ results .sort ()
262+ self .assertEqual (results ,
263+ [u'"bazval2"' ,
264+ u'"bazval3"' ,
265+ u'"bazval4"' ])
266+
267+ def test_mr_list_add_two_buckets (self ):
268+ bucket = self .client .bucket ("bucket_a" )
269+ for x in range (10 ):
270+ bucket .new ('foo' + str (x ),
271+ 'fooval' + str (x )).store ()
272+ bucket = self .client .bucket ("bucket_b" )
273+ for x in range (10 ):
274+ bucket .new ('bar' + str (x ),
275+ 'barval' + str (x )).store ()
276+
277+ mr = self .client .add ('bucket_a' , ['foo' + str (x )
278+ for x in range (2 , 4 )])
279+ mr .add ('bucket_b' , ['bar' + str (x )
280+ for x in range (5 , 7 )])
281+ results = mr .map_values ().run ()
282+ results .sort ()
283+
284+ self .assertEqual (results ,
285+ [u'"barval5"' ,
286+ u'"barval6"' ,
287+ u'"fooval2"' ,
288+ u'"fooval3"' ])
289+
290+ def test_mr_list_add_mix (self ):
291+ bucket = self .client .bucket ("bucket_a" )
292+ for x in range (10 ):
293+ bucket .new ('foo' + str (x ),
294+ 'fooval' + str (x )).store ()
295+ bucket = self .client .bucket ("bucket_b" )
296+ for x in range (10 ):
297+ bucket .new ('bar' + str (x ),
298+ 'barval' + str (x )).store ()
299+
300+ mr = self .client .add ('bucket_a' , ['foo' + str (x )
301+ for x in range (2 , 4 )])
302+ mr .add ('bucket_b' , 'bar9' )
303+ mr .add ('bucket_b' , 'bar2' )
304+ results = mr .map_values ().run ()
305+ results .sort ()
306+
307+ self .assertEqual (results ,
308+ [u'"barval2"' ,
309+ u'"barval9"' ,
310+ u'"fooval2"' ,
311+ u'"fooval3"' ])
312+
232313
233314class MapReduceAliasTests (object ):
234315 """This tests the map reduce aliases"""
0 commit comments