@@ -464,7 +464,21 @@ def test_index_regex(self):
464464
465465 self .assertEqual ([('val2' , o2 .key )], results )
466466
467- def _create_index_objects (self ):
467+ @unittest .skipIf (SKIP_INDEXES , 'SKIP_INDEX is defined' )
468+ def test_index_falsey_endkey_gh378 (self ):
469+ if not self .is_2i_supported ():
470+ raise unittest .SkipTest ("2I is not supported" )
471+
472+ bucket , o1 , o2 , o3 , o4 = self ._create_index_objects (int_sign = - 1 )
473+
474+ results = []
475+ for item in bucket .stream_index ('field2_int' , - 10000 , 0 ):
476+ results .extend (item )
477+
478+ self .assertEqual (set ([o4 .key , o3 .key , o2 .key , o1 .key ]),
479+ set (results ))
480+
481+ def _create_index_objects (self , int_sign = 1 ):
468482 """
469483 Creates a number of index objects to be used in 2i test
470484 """
@@ -473,22 +487,22 @@ def _create_index_objects(self):
473487 o1 = bucket .\
474488 new (self .randname (), 'data1' ).\
475489 add_index ('field1_bin' , 'val1' ).\
476- add_index ('field2_int' , 1001 ).\
490+ add_index ('field2_int' , int_sign * 1001 ).\
477491 store ()
478492 o2 = bucket .\
479493 new (self .randname (), 'data1' ).\
480494 add_index ('field1_bin' , 'val2' ).\
481- add_index ('field2_int' , 1002 ).\
495+ add_index ('field2_int' , int_sign * 1002 ).\
482496 store ()
483497 o3 = bucket .\
484498 new (self .randname (), 'data1' ).\
485499 add_index ('field1_bin' , 'val3' ).\
486- add_index ('field2_int' , 1003 ).\
500+ add_index ('field2_int' , int_sign * 1003 ).\
487501 store ()
488502 o4 = bucket .\
489503 new (self .randname (), 'data1' ).\
490504 add_index ('field1_bin' , 'val4' ).\
491- add_index ('field2_int' , 1004 ).\
505+ add_index ('field2_int' , int_sign * 1004 ).\
492506 store ()
493507
494508 return bucket , o1 , o2 , o3 , o4
0 commit comments