@@ -464,16 +464,62 @@ class MyClass(dict):
464
464
slave_okay = True ,
465
465
await_data = True ,
466
466
partial = True ).limit (2 )
467
+ cursor .add_option (64 )
467
468
468
469
cursor2 = cursor .clone ()
469
470
self .assertEqual (cursor ._Cursor__skip , cursor2 ._Cursor__skip )
471
+ self .assertEqual (cursor ._Cursor__limit , cursor2 ._Cursor__limit )
470
472
self .assertEqual (cursor ._Cursor__timeout , cursor2 ._Cursor__timeout )
471
473
self .assertEqual (cursor ._Cursor__snapshot , cursor2 ._Cursor__snapshot )
472
474
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 )
476
481
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 ())
477
523
478
524
def test_count_with_fields (self ):
479
525
self .db .test .drop ()
0 commit comments