def test_get_response(self): request = request_factory.get("/", {'q': 'an'}) autocomplete = LabeledAutocomplete(model=User, search_fields=['username']) autocomplete.request = request results = autocomplete.get_result_queryset() response = autocomplete.get_response(results) qs = User.objects.filter(username__startswith='an') compare = simplejson.dumps(list((u.id, unicode(u)) for u in qs)) self.assertEquals('text/javascript', response['Content-Type']) self.assertEquals(compare, response.content) request = request_factory.get("/", {'q': 'an'}) autocomplete = LabeledAutocomplete( model=User, search_fields=['username'], limit=1 ) autocomplete.request = request results = autocomplete.get_result_queryset() response = autocomplete.get_response(results) qs = User.objects.filter(username__startswith='an')[:1] compare = simplejson.dumps(list((u.id, unicode(u)) for u in qs)) self.assertEquals('text/javascript', response['Content-Type']) self.assertEquals(compare, response.content)
def test_prepare_results(self): request = request_factory.get("/", {'q': 'an'}) autocomplete = LabeledAutocomplete(model=User, search_fields=['username']) autocomplete.request = request results = autocomplete.get_result_queryset() prepared = autocomplete.prepare_results(results) qs = User.objects.filter(username__startswith='an') self.assertEquals([(u.id, unicode(u)) for u in qs], prepared) autocomplete = LabeledAutocomplete( model=User, search_fields=['username'], label='username' ) autocomplete.request = request results = autocomplete.get_result_queryset() prepared = autocomplete.prepare_results(results) qs = User.objects.filter(username__startswith='an') self.assertEquals([(u.id, u.username) for u in qs], prepared) autocomplete = LabeledAutocomplete( model=User, search_fields=['username'], label='username', key_field='username' ) autocomplete.request = request results = autocomplete.get_result_queryset() prepared = autocomplete.prepare_results(results) qs = User.objects.filter(username__startswith='an') self.assertEquals([(u.username, u.username) for u in qs], prepared)