summaryrefslogtreecommitdiff
path: root/tests/admin_widgets/test_autocomplete_widget.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/admin_widgets/test_autocomplete_widget.py')
-rw-r--r--tests/admin_widgets/test_autocomplete_widget.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/admin_widgets/test_autocomplete_widget.py b/tests/admin_widgets/test_autocomplete_widget.py
index d8ee7e9f3a..279acfe615 100644
--- a/tests/admin_widgets/test_autocomplete_widget.py
+++ b/tests/admin_widgets/test_autocomplete_widget.py
@@ -5,7 +5,7 @@ from django.forms import ModelChoiceField
from django.test import TestCase, override_settings
from django.utils import translation
-from .models import Album, Band
+from .models import Album, Band, ReleaseEvent, VideoStream
class AlbumForm(forms.ModelForm):
@@ -41,6 +41,18 @@ class RequiredBandForm(forms.Form):
)
+class VideoStreamForm(forms.ModelForm):
+ class Meta:
+ model = VideoStream
+ fields = ['release_event']
+ widgets = {
+ 'release_event': AutocompleteSelect(
+ VideoStream._meta.get_field('release_event'),
+ admin.site,
+ ),
+ }
+
+
@override_settings(ROOT_URLCONF='admin_widgets.urls')
class AutocompleteMixinTests(TestCase):
empty_option = '<option value=""></option>'
@@ -114,6 +126,15 @@ class AutocompleteMixinTests(TestCase):
output = form.as_table()
self.assertNotIn(self.empty_option, output)
+ def test_render_options_fk_as_pk(self):
+ beatles = Band.objects.create(name='The Beatles', style='rock')
+ rubber_soul = Album.objects.create(name='Rubber Soul', band=beatles)
+ release_event = ReleaseEvent.objects.create(name='Test Target', album=rubber_soul)
+ form = VideoStreamForm(initial={'release_event': release_event.pk})
+ output = form.as_table()
+ selected_option = '<option value="%s" selected>Test Target</option>' % release_event.pk
+ self.assertIn(selected_option, output)
+
def test_media(self):
rel = Album._meta.get_field('band').remote_field
base_files = (