class TestMingWidgetSelector: testColumns = ( (S.Binary, FileField), (S.Bool, SproxCheckBox), (S.String, TextField), (S.DateTime, SproxCalendarDateTimePicker), (S.Float, TextField), (S.Int, TextField), (S.OneOf, PropertySingleSelectField), ) def setup(self): self.widgetSelector = MingWidgetSelector() def test_createObj(self): pass def _testSelect(self, column, expected): widget = self.widgetSelector.select(column) assert widget == expected, "expected: %s\nactual: %s"%(expected, widget) def testSelect(self): for type, expected in self.testColumns: args={} c = FieldProperty(type, **args) yield self._testSelect, c, expected def test_select_with_one_relation(self): eq_(self.widgetSelector.select(User.town), PropertySingleSelectField) def test_select_with_many_relation(self): eq_(self.widgetSelector.select(User.groups), PropertyMultipleSelectField) @raises(TypeError) def _select(self, arg1): self.widgetSelector.select(arg1) def testPasswordField(self): c = FieldProperty(S.String) c.sprox_meta = {"password": True} self._testSelect(c, PasswordField) def testTextArea(self): c = FieldProperty(S.String) c.sprox_meta = {"narrative": True} self._testSelect(c, TextArea) def testNameBasedWidgetSelect(self): c = FieldProperty(S.Int) selector = DummyMingWidgetSelector() widget = selector.select(c) assert widget is TextField
def setup(self): self.widgetSelector = MingWidgetSelector()
class TestMingWidgetSelector: testColumns = ((S.Binary, FileField), (S.Bool, SproxCheckBox), (S.String, TextField), (S.DateTime, SproxCalendarDateTimePicker), (S.Float, TextField), (S.Int, TextField), (S.OneOf, PropertySingleSelectField), (bool, SproxCheckBox)) def setup(self): self.widgetSelector = MingWidgetSelector() def test_createObj(self): pass def _testSelect(self, column, expected): widget = self.widgetSelector.select(column) assert widget == expected, "expected: %s\nactual: %s" % (expected, widget) def testSelect(self): for type, expected in self.testColumns: args = {} c = FieldProperty(type, **args) yield self._testSelect, c, expected def test_select_with_one_relation(self): eq_(self.widgetSelector.select(User.town), PropertySingleSelectField) def test_select_with_many_relation(self): eq_(self.widgetSelector.select(User.groups), PropertyMultipleSelectField) def test_select_with_password(self): eq_(self.widgetSelector.select(UnrelatedDocument.password), PasswordField) def test_name_based_selector(self): class NamedSelector(MingWidgetSelector): default_name_based_widgets = {'number': SingleSelectField} sel = NamedSelector() eq_(sel.select(UnrelatedDocument.number), SingleSelectField) def test_unknown_field_type(self): eq_(self.widgetSelector.select(UnrelatedDocument.something), TextField) @raises(TypeError) def _select(self, arg1): self.widgetSelector.select(arg1) def testPasswordField(self): c = FieldProperty(S.String) c.sprox_meta = {"password": True} self._testSelect(c, PasswordField) def testTextArea(self): c = FieldProperty(S.String) c.sprox_meta = {"narrative": True} self._testSelect(c, TextArea) def testNameBasedWidgetSelect(self): c = FieldProperty(S.Int) selector = DummyMingWidgetSelector() widget = selector.select(c) assert widget is TextField