def test_get_label(self):
     autocomplete = LabeledAutocomplete()
     label = autocomplete.get_label(None)
     self.assertTrue(callable(label))
     self.assertEquals(u'test', label(u'test'))
     autocomplete = LabeledAutocomplete(label='test')
     label = autocomplete.get_label(None)
     self.assertEquals(u'test', label)
 def test_prepare_results(self):
     autocomplete = LabeledAutocomplete(label=2)
     self.assertEquals(2, autocomplete.get_label(None))
     self.assertRaises(
         ImproperlyConfigured,
         autocomplete.prepare_results,
         User.objects.all()
     )
    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)
 def test_get_key_field(self):
     autocomplete = LabeledAutocomplete(model=User)
     self.assertEquals('id', autocomplete.get_key_field(User.objects.all()))
     autocomplete = LabeledAutocomplete(key_field='id')
     self.assertEquals('id', autocomplete.get_key_field(None))