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)