Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

test_widgets.py 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django import forms
  2. from django.test import override_settings
  3. from oscar.core.loading import get_class
  4. from oscar.test.factories import Member
  5. from oscar.test.testcases import WebTestCase
  6. RelatedFieldWidgetWrapper = get_class('dashboard.widgets',
  7. 'RelatedFieldWidgetWrapper')
  8. @override_settings(ROOT_URLCONF='oscar.test.factories.urls')
  9. class RelatedFieldWidgetWrapperTests(WebTestCase):
  10. def test_custom_widget_render(self):
  11. class CustomWidget(forms.Select):
  12. def render(self, *args, **kwargs):
  13. return 'custom render output'
  14. remote_field = Member._meta.get_field('band').remote_field
  15. widget = CustomWidget()
  16. wrapper = RelatedFieldWidgetWrapper(widget, remote_field)
  17. output = wrapper.render('name', 'value')
  18. self.assertIn('custom render output', output)
  19. def test_widget_delegates_value_omitted_from_data(self):
  20. class CustomWidget(forms.Select):
  21. def value_omitted_from_data(self, data, files, name):
  22. return False
  23. remote_field = Member._meta.get_field('band').remote_field
  24. widget = CustomWidget()
  25. wrapper = RelatedFieldWidgetWrapper(widget, remote_field)
  26. self.assertIs(wrapper.value_omitted_from_data({}, {}, 'band'), False)
  27. def test_widget_render(self):
  28. remote_field = Member._meta.get_field('band').remote_field
  29. widget = forms.Select()
  30. wrapper = RelatedFieldWidgetWrapper(widget, remote_field)
  31. context = wrapper.get_context('name', 'value', None)
  32. self.assertTrue(context, 'rendered_widget')
  33. self.assertTrue(context, 'name')
  34. self.assertTrue(context, 'url_params')
  35. self.assertTrue(context, 'model')
  36. self.assertTrue(context, 'add_related_url')
  37. self.assertTrue(context, 'change_related_template_url')
  38. self.assertTrue(context, 'delete_related_template_url')