def test_data_converter_tuple(self): from plone.app.widgets.dx import SelectWidget from plone.app.widgets.dx import SelectWidgetConverter field = Tuple(__name__='tuplefield', value_type=Choice(__name__='selectfield', values=['one', 'two', 'three'])) widget = SelectWidget(self.request) widget.field = field widget.multiple = True converter = SelectWidgetConverter(field, widget) self.assertEqual( converter.toFieldValue(''), field.missing_value, ) self.assertEqual( converter.toFieldValue('one;two;three'), ('one', 'two', 'three'), ) self.assertEqual( converter.toWidgetValue(tuple()), [], ) self.assertEqual( converter.toWidgetValue(('one', 'two', 'three')), ['one', 'two', 'three'], )
def test_widget_set_not_orderable(self): from plone.app.widgets.dx import SelectWidget widget = SelectWidget(self.request) # A set is not orderable widget.field = Set( __name__='selectfield', value_type=Choice(values=['one', 'two', 'three']) ) widget.terms = widget.field.value_type.vocabulary self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': { 'multiple': True, 'separator': ';'}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), )
def test_widget(self): from plone.app.widgets.dx import SelectWidget widget = SelectWidget(self.request) widget.field = Choice( __name__='selectfield', values=['one', 'two', 'three'] ) widget.terms = widget.field.vocabulary self.assertEqual( { 'multiple': False, 'name': None, 'pattern_options': {}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), ) widget.multiple = True self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': {'separator': ';', 'multiple': True}, 'pattern': 'select2', 'value': (), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), ) widget.value = 'one' self.assertEqual( { 'multiple': True, 'name': None, 'pattern_options': {'separator': ';', 'multiple': True}, 'pattern': 'select2', 'value': ('one'), 'items': [ ('one', 'one'), ('two', 'two'), ('three', 'three') ] }, widget._base_args(), )
def test_data_converter_list(self): from plone.app.widgets.dx import SelectWidget from plone.app.widgets.dx import SelectWidgetConverter field = List(__name__='listfield', value_type=Choice(__name__='selectfield', values=['one', 'two', 'three'])) widget = SelectWidget(self.request) widget.field = field widget.multiple = True converter = SelectWidgetConverter(field, widget) self.assertEqual( converter.toFieldValue(''), field.missing_value, ) self.assertEqual( converter.toFieldValue('one;two;three'), ['one', 'two', 'three'], ) self.assertEqual( converter.toWidgetValue([]), [], ) widget.separator = ',' self.assertEqual( converter.toFieldValue('one,two,three'), ['one', 'two', 'three'], ) self.assertRaises( LookupError, converter.toFieldValue, 'one;two;three' ) self.assertEqual( converter.toWidgetValue(['one', 'two', 'three']), ['one', 'two', 'three'] )
def test_select(self): from plone.app.widgets.dx import SelectWidget request = TestRequest(environ={'HTTP_ACCEPT_LANGUAGE': 'en'}, example='example-value') widget = SelectWidget(request) widget.name = 'example' widget.field = TextLine(__name__='selectfield') widget.field.vocabulary = SimpleVocabulary.fromValues( ['option1', 'option2', 'option3']) self.assertEqual( widget._widget_args(), { 'name': 'example', 'pattern': 'select2', 'pattern_options': {}, 'options': [('option1', None), ('option2', None), ('option3', None)], }, )
def test_widget_extract(self): from plone.app.widgets.dx import SelectWidget widget = SelectWidget(self.request) widget.field = Choice(__name__='selectfield', values=['one', 'two', 'three']) widget.name = 'selectfield' self.request.form['selectfield'] = 'one' self.assertEquals(widget.extract(), 'one') widget.multiple = True self.request.form['selectfield'] = 'one;two' self.assertEquals(widget.extract(), 'one;two')
def test_widget_extract(self): from plone.app.widgets.dx import SelectWidget widget = SelectWidget(self.request) widget.field = Choice( __name__='selectfield', values=['one', 'two', 'three'] ) widget.name = 'selectfield' self.request.form['selectfield'] = 'one' self.assertEquals(widget.extract(), ('one',)) widget.multiple = True self.request.form['selectfield'] = 'one;two' self.assertEquals(widget.extract(), ('one;two', ))
def LanguageFieldWidget(field, request): widget = FieldWidget(field, SelectWidget(request)) return widget