def test_items(self): instance = AutocompletePerson() items = instance.items() self.assertEqual(len(items), 0) # Limit is "2" items = instance.items(query="a") self.assertEqual(len(items), 0) # Should be okay now items = instance.items(query="ali") self.assertEqual(len(items), 4) items = instance.items(query="bob") self.assertEqual(len(items), 1) items = instance.items(query="zzzzz") self.assertEqual(len(items), 0)
def test_paginated_search(self): instance = AutocompletePerson(page_size=3) # The raw queryset is not paginated. qs = instance.get_queryset() conditions = instance.get_queryset_filters(query="ali") items = qs.filter(conditions) self.assertEqual(items.count(), 4) # The "items" method returns paginated objects items = instance.items(query="ali") self.assertEqual(len(items), 3)
def test_final_queryset_person(self): instance = AutocompletePerson() # No items() called, None self.assertTrue(instance.final_queryset is None) # Called items(), empty queryset items = instance.items() self.assertFalse(instance.final_queryset is None) self.assertEqual(instance.final_queryset.count(), 0) # Regular search, normal queryset items = instance.items(query="ali") self.assertEqual(len(items), 4) self.assertTrue(instance.final_queryset) self.assertEqual(instance.final_queryset.count(), 4) # Paginated queryset instance = AutocompletePerson(page_size=2) items = instance.items(query="ali") self.assertEqual(len(items), 2) self.assertTrue(instance.final_queryset) self.assertEqual(instance.final_queryset.count(), 2) self.assertEqual(instance.final_raw_queryset.count(), 4)