예제 #1
0
 def test_filter(self):
     """
     Filter items from an enumeration based on a predicate, ignoring hidden
     items.
     """
     enum = Enum(
         'doc',
         [EnumItem(u'1', u'Option One',
                   a=1),
          EnumItem(u'2', u'Option Two',
                   a=2, b=20, hidden=True),
          EnumItem(u'3', u'Option Three',
                   a=3, b=30),
          EnumItem(u'4', u'Option Four',
                   a=4),
          EnumItem(u'5', u'Option Five',
                   a=5)])
     self.assertThat(
         filter_enum(methodcaller('get', 'b'), enum),
         After(list,
               MatchesListwise([
                   MatchesAll(
                       MatchesStructure(
                           value=Equals(u'3'),
                           desc=Equals(u'Option Three'),
                           hidden=Equals(False)),
                       After(lambda ei: sorted(ei.items()),
                             Equals([('a', 3), ('b', 30)])))])))
예제 #2
0
 def test_stay_hidden(self):
     """
     Items that are hidden are not accidentally resurrected.
     """
     enum = Enum(
         'doc',
         [EnumItem(u'1', u'Option One'),
          EnumItem(u'2', u'Option Two', hidden=True)])
     self.assertThat(
         list(filter_enum(methodcaller('get', 'hidden'), enum)),
         Equals([]))