@@ -4165,7 +4165,11 @@ class MyDoc(Document):
41654165
41664166 def test_read_preference (self ):
41674167 class Bar (Document ):
4168- pass
4168+ txt = StringField ()
4169+
4170+ meta = {
4171+ 'indexes' : [ 'txt' ]
4172+ }
41694173
41704174 Bar .drop_collection ()
41714175 bars = list (Bar .objects (read_preference = ReadPreference .PRIMARY ))
@@ -4177,9 +4181,51 @@ class Bar(Document):
41774181 error_class = TypeError
41784182 self .assertRaises (error_class , Bar .objects , read_preference = 'Primary' )
41794183
4184+ # read_preference as a kwarg
41804185 bars = Bar .objects (read_preference = ReadPreference .SECONDARY_PREFERRED )
41814186 self .assertEqual (
41824187 bars ._read_preference , ReadPreference .SECONDARY_PREFERRED )
4188+ self .assertEqual (bars ._cursor ._Cursor__read_preference ,
4189+ ReadPreference .SECONDARY_PREFERRED )
4190+
4191+ # read_preference as a query set method
4192+ bars = Bar .objects .read_preference (ReadPreference .SECONDARY_PREFERRED )
4193+ self .assertEqual (
4194+ bars ._read_preference , ReadPreference .SECONDARY_PREFERRED )
4195+ self .assertEqual (bars ._cursor ._Cursor__read_preference ,
4196+ ReadPreference .SECONDARY_PREFERRED )
4197+
4198+ # read_preference after skip
4199+ bars = Bar .objects .skip (1 ) \
4200+ .read_preference (ReadPreference .SECONDARY_PREFERRED )
4201+ self .assertEqual (
4202+ bars ._read_preference , ReadPreference .SECONDARY_PREFERRED )
4203+ self .assertEqual (bars ._cursor ._Cursor__read_preference ,
4204+ ReadPreference .SECONDARY_PREFERRED )
4205+
4206+ # read_preference after limit
4207+ bars = Bar .objects .limit (1 ) \
4208+ .read_preference (ReadPreference .SECONDARY_PREFERRED )
4209+ self .assertEqual (
4210+ bars ._read_preference , ReadPreference .SECONDARY_PREFERRED )
4211+ self .assertEqual (bars ._cursor ._Cursor__read_preference ,
4212+ ReadPreference .SECONDARY_PREFERRED )
4213+
4214+ # read_preference after order_by
4215+ bars = Bar .objects .order_by ('txt' ) \
4216+ .read_preference (ReadPreference .SECONDARY_PREFERRED )
4217+ self .assertEqual (
4218+ bars ._read_preference , ReadPreference .SECONDARY_PREFERRED )
4219+ self .assertEqual (bars ._cursor ._Cursor__read_preference ,
4220+ ReadPreference .SECONDARY_PREFERRED )
4221+
4222+ # read_preference after hint
4223+ bars = Bar .objects .hint ([('txt' , 1 )]) \
4224+ .read_preference (ReadPreference .SECONDARY_PREFERRED )
4225+ self .assertEqual (
4226+ bars ._read_preference , ReadPreference .SECONDARY_PREFERRED )
4227+ self .assertEqual (bars ._cursor ._Cursor__read_preference ,
4228+ ReadPreference .SECONDARY_PREFERRED )
41834229
41844230 def test_json_simple (self ):
41854231
0 commit comments