@@ -464,16 +464,62 @@ class MyClass(dict):
464464 slave_okay = True ,
465465 await_data = True ,
466466 partial = True ).limit (2 )
467+ cursor .add_option (64 )
467468
468469 cursor2 = cursor .clone ()
469470 self .assertEqual (cursor ._Cursor__skip , cursor2 ._Cursor__skip )
471+ self .assertEqual (cursor ._Cursor__limit , cursor2 ._Cursor__limit )
470472 self .assertEqual (cursor ._Cursor__timeout , cursor2 ._Cursor__timeout )
471473 self .assertEqual (cursor ._Cursor__snapshot , cursor2 ._Cursor__snapshot )
472474 self .assertEqual (cursor ._Cursor__tailable , cursor2 ._Cursor__tailable )
473- self .assertEqual (type (cursor ._Cursor__as_class ), type (cursor2 ._Cursor__as_class ))
474- self .assertEqual (cursor ._Cursor__slave_okay , cursor2 ._Cursor__slave_okay )
475- self .assertEqual (cursor ._Cursor__await_data , cursor2 ._Cursor__await_data )
475+ self .assertEqual (type (cursor ._Cursor__as_class ),
476+ type (cursor2 ._Cursor__as_class ))
477+ self .assertEqual (cursor ._Cursor__slave_okay ,
478+ cursor2 ._Cursor__slave_okay )
479+ self .assertEqual (cursor ._Cursor__await_data ,
480+ cursor2 ._Cursor__await_data )
476481 self .assertEqual (cursor ._Cursor__partial , cursor2 ._Cursor__partial )
482+ self .assertEqual (cursor ._Cursor__query_flags ,
483+ cursor2 ._Cursor__query_flags )
484+
485+ def test_add_remove_option (self ):
486+ cursor = self .db .test .find ()
487+ self .assertEqual (0 , cursor ._Cursor__query_options ())
488+ cursor .add_option (2 )
489+ cursor2 = self .db .test .find (tailable = True )
490+ self .assertEqual (2 , cursor2 ._Cursor__query_options ())
491+ self .assertEqual (cursor ._Cursor__query_options (),
492+ cursor2 ._Cursor__query_options ())
493+ cursor .add_option (32 )
494+ cursor2 = self .db .test .find (tailable = True , await_data = True )
495+ self .assertEqual (34 , cursor2 ._Cursor__query_options ())
496+ self .assertEqual (cursor ._Cursor__query_options (),
497+ cursor2 ._Cursor__query_options ())
498+ cursor .add_option (128 )
499+ cursor2 = self .db .test .find (tailable = True ,
500+ await_data = True ).add_option (128 )
501+ self .assertEqual (162 , cursor2 ._Cursor__query_options ())
502+ self .assertEqual (cursor ._Cursor__query_options (),
503+ cursor2 ._Cursor__query_options ())
504+
505+ self .assertEqual (162 , cursor ._Cursor__query_options ())
506+ cursor .add_option (128 )
507+ self .assertEqual (162 , cursor ._Cursor__query_options ())
508+
509+ cursor .remove_option (128 )
510+ cursor2 = self .db .test .find (tailable = True , await_data = True )
511+ self .assertEqual (34 , cursor2 ._Cursor__query_options ())
512+ self .assertEqual (cursor ._Cursor__query_options (),
513+ cursor2 ._Cursor__query_options ())
514+ cursor .remove_option (32 )
515+ cursor2 = self .db .test .find (tailable = True )
516+ self .assertEqual (2 , cursor2 ._Cursor__query_options ())
517+ self .assertEqual (cursor ._Cursor__query_options (),
518+ cursor2 ._Cursor__query_options ())
519+
520+ self .assertEqual (2 , cursor ._Cursor__query_options ())
521+ cursor .remove_option (32 )
522+ self .assertEqual (2 , cursor ._Cursor__query_options ())
477523
478524 def test_count_with_fields (self ):
479525 self .db .test .drop ()
0 commit comments