def test_widget_base_pattern_options_with_functions(self): from plone.app.z3cform.widget import BaseWidget from plone.app.widgets.base import InputWidget widget = BaseWidget(self.request) widget.context = 'testcontext' widget.field = self.field widget.pattern = 'example' widget._base = InputWidget widget.pattern_options = { 'subdict': { 'subsubnormal': 789, 'subsublist': [7, 8, 9, lambda x: x], 'subsubtuple': (7, 8, 9, lambda x: x), } } self.assertEqual( '<input class="pat-example" type="text" ' 'data-pat-example="{"subdict": ' '{"subsubtuple": [7, 8, 9, "testcontext"], ' '"subsublist": [7, 8, 9, "testcontext"], ' '"subsubnormal": 789}}"/>', widget.render())