12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from django import forms
- from django.test import TestCase, override_settings
-
- from oscar.apps.dashboard.widgets import RelatedFieldWidgetWrapper
- from oscar.test.factories import Member
-
-
- @override_settings(ROOT_URLCONF='oscar.test.factories.urls')
- class RelatedFieldWidgetWrapperTests(TestCase):
-
- def test_custom_widget_render(self):
- class CustomWidget(forms.Select):
- def render(self, *args, **kwargs):
- return 'custom render output'
-
- remote_field = Member._meta.get_field('band').remote_field
- widget = CustomWidget()
- wrapper = RelatedFieldWidgetWrapper(widget, remote_field)
- output = wrapper.render('name', 'value')
- self.assertIn('custom render output', output)
-
- def test_widget_delegates_value_omitted_from_data(self):
- class CustomWidget(forms.Select):
- def value_omitted_from_data(self, data, files, name):
- return False
-
- remote_field = Member._meta.get_field('band').remote_field
- widget = CustomWidget()
- wrapper = RelatedFieldWidgetWrapper(widget, remote_field)
- self.assertIs(wrapper.value_omitted_from_data({}, {}, 'band'), False)
-
- def test_widget_render(self):
- remote_field = Member._meta.get_field('band').remote_field
- widget = forms.Select()
- wrapper = RelatedFieldWidgetWrapper(widget, remote_field)
- context = wrapper.get_context('name', 'value', None)
- self.assertTrue(context, 'rendered_widget')
- self.assertTrue(context, 'name')
- self.assertTrue(context, 'url_params')
- self.assertTrue(context, 'model')
- self.assertTrue(context, 'add_related_url')
- self.assertTrue(context, 'change_related_template_url')
- self.assertTrue(context, 'delete_related_template_url')
|