1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
# -*- coding: utf-8 -*-
from django.test import TestCase
from django.utils.text import Truncator
from django_extensions.admin import widgets
from .testapp import models
class ForeignKeySearchInputTestCase(TestCase):
def test_widget_works(self):
name = models.Name.objects.create(name="Name")
person = models.Person.objects.create(
name=name,
age=30,
)
club = models.Club.objects.create(
name='Club',
)
membership = models.Membership.objects.create(club=club, person=person)
widget = widgets.ForeignKeySearchInput(
models.Membership._meta.get_field('person').remote_field,
['person__name'])
label = widget.label_for_value(membership.pk)
self.assertEqual(
Truncator(person).words(14, truncate='...'),
label)
# Just making sure rendering the widget doesn't cause any issue
widget.render('person', person.pk)
widget.render('person', None)
|