@@ -490,6 +490,17 @@ def test_slice(self):
490
490
self .assertEqual (int (results [21 ].pk ), 22 )
491
491
self .assertEqual (len (backends .queries ), 1 )
492
492
493
+ def test_count (self ):
494
+ backends .reset_search_queries ()
495
+ self .assertEqual (len (backends .queries ), 0 )
496
+ sqs = self .sqs .all ()
497
+ self .assertEqual (sqs .count (), 23 )
498
+ self .assertEqual (sqs .count (), 23 )
499
+ self .assertEqual (len (sqs ), 23 )
500
+ self .assertEqual (sqs .count (), 23 )
501
+ # Should only execute one query to count the length of the result set.
502
+ self .assertEqual (len (backends .queries ), 1 )
503
+
493
504
def test_manual_iter (self ):
494
505
results = self .sqs .all ()
495
506
@@ -709,24 +720,28 @@ def tearDown(self):
709
720
710
721
def test_more_like_this (self ):
711
722
mlt = self .sqs .more_like_this (MockModel .objects .get (pk = 1 ))
712
- self .assertEqual (mlt .count (), 25 )
723
+ self .assertEqual (mlt .count (), 24 )
713
724
self .assertEqual ([result .pk for result in mlt ], ['6' , '14' , '4' , '10' , '22' , '5' , '3' , '12' , '2' , '23' , '18' , '19' , '13' , '7' , '15' , '21' , '9' , '1' , '2' , '20' , '16' , '17' , '8' , '11' ])
725
+ self .assertEqual (len ([result .pk for result in mlt ]), 24 )
714
726
715
727
alt_mlt = self .sqs .filter (name = 'daniel3' ).more_like_this (MockModel .objects .get (pk = 3 ))
716
- self .assertEqual (alt_mlt .count (), 11 )
728
+ self .assertEqual (alt_mlt .count (), 10 )
717
729
self .assertEqual ([result .pk for result in alt_mlt ], ['23' , '13' , '17' , '16' , '22' , '19' , '4' , '10' , '1' , '2' ])
730
+ self .assertEqual (len ([result .pk for result in alt_mlt ]), 10 )
718
731
719
732
alt_mlt_with_models = self .sqs .models (MockModel ).more_like_this (MockModel .objects .get (pk = 1 ))
720
- self .assertEqual (alt_mlt_with_models .count (), 23 )
733
+ self .assertEqual (alt_mlt_with_models .count (), 22 )
721
734
self .assertEqual ([result .pk for result in alt_mlt_with_models ], ['6' , '14' , '4' , '10' , '22' , '5' , '3' , '12' , '2' , '23' , '18' , '19' , '13' , '7' , '15' , '21' , '9' , '20' , '16' , '17' , '8' , '11' ])
735
+ self .assertEqual (len ([result .pk for result in alt_mlt_with_models ]), 22 )
722
736
723
737
if hasattr (MockModel .objects , 'defer' ):
724
738
# Make sure MLT works with deferred bits.
725
739
mi = MockModel .objects .defer ('foo' ).get (pk = 1 )
726
740
self .assertEqual (mi ._deferred , True )
727
741
deferred = self .sqs .models (MockModel ).more_like_this (mi )
728
- self .assertEqual (alt_mlt_with_models .count (), 23 )
729
- self .assertEqual ([result .pk for result in alt_mlt_with_models ], ['6' , '14' , '4' , '10' , '22' , '5' , '3' , '12' , '2' , '23' , '18' , '19' , '13' , '7' , '15' , '21' , '9' , '20' , '16' , '17' , '8' , '11' ])
742
+ self .assertEqual (deferred .count (), 0 )
743
+ self .assertEqual ([result .pk for result in deferred ], [])
744
+ self .assertEqual (len ([result .pk for result in deferred ]), 0 )
730
745
731
746
732
747
class LiveSolrRoundTripTestCase (TestCase ):
0 commit comments