def test_groupList(self): """ Adapting a C{list} of nested C{list}s, as used by L{methanal.view.GroupedSelectInput}, results in an L{Enum} with L{EnumItems} with a C{'group'} extra value the same as the first element in each C{tuple}. L{IEnumeration.asPairs} returns a flat C{list} for nested C{list}s adapted to L{IEnumeration}. """ values = [ (u'Group', [ (u'foo', u'Foo'), (u'bar', u'Bar')]), (u'Group 2', [ (u'quux', u'Quux'), (u'frob', u'Frob')])] enum = IEnumeration(values) for groupName, innerValues in values: for value, desc in innerValues: item = enum.get(value) self.assertEquals(item.value, value) self.assertEquals(item.desc, desc) self.assertEquals(item.get('group'), groupName) pairs = sum(zip(*values)[1], []) self.assertEquals(enum.asPairs(), pairs)
def __init__(self, values, **kw): super(ChoiceInput, self).__init__(**kw) _values = IEnumeration(values, None) if _values is None: _values = IEnumeration(list(values)) warn('ChoiceInput: "values" should be adaptable to IEnumeration', DeprecationWarning, 2) self.values = _values
def test_list(self): """ Adapting a C{list} to L{IEnumeration} results in an L{Enum} accurately representing the list. """ values = [(u'foo', u'Foo'), (u'bar', u'Bar')] enum = IEnumeration(values) self.assertEquals(enum.as_pairs(), values) for value, desc in values: item = enum.get(value) self.assertEquals(item.value, value) self.assertEquals(item.desc, desc)
def test_list(self): """ Adapting a C{list} to L{IEnumeration} results in an L{Enum} accurately representing the list. """ values = [ (u'foo', u'Foo'), (u'bar', u'Bar')] enum = IEnumeration(values) self.assertEquals(enum.asPairs(), values) for value, desc in values: item = enum.get(value) self.assertEquals(item.value, value) self.assertEquals(item.desc, desc)
def createControl(self, args): """ Create a L{methanal.view.ChoiceInput} from C{values} and assert that L{methanal.view.ChoiceInput.values} provides L{IEnumeration}. """ control = super(ChoiceInputTestsMixin, self).createControl(args) self.assertTrue(IEnumeration.providedBy(control.values)) return control
def test_groupList(self): """ Adapting a C{list} of nested C{list}s, as used by L{methanal.view.GroupedSelectInput}, results in an L{Enum} with L{EnumItems} with a C{'group'} extra value the same as the first element in each C{tuple}. L{IEnumeration.as_pairs} returns a flat C{list} for nested C{list}s adapted to L{IEnumeration}. """ values = [(u'Group', [(u'foo', u'Foo'), (u'bar', u'Bar')]), (u'Group 2', [(u'quux', u'Quux'), (u'frob', u'Frob')])] enum = IEnumeration(values) for groupName, innerValues in values: for value, desc in innerValues: item = enum.get(value) self.assertEquals(item.value, value) self.assertEquals(item.desc, desc) self.assertEquals(item.get('group'), groupName) pairs = sum(zip(*values)[1], []) self.assertEquals(enum.as_pairs(), pairs)