def test_get(self): """ Getting an enumeration item by value returns the relevant `EnumItem` instance or raises `InvalidEnumItem` in the case where no item is represented by the given value. """ values = enum_values_fixture() enum = Enum('doc', values) self.assertThat( values, Equals([enum.get(e.value) for e in values])) self.assertThat( lambda: enum.get(u'DOES_NOT_EXIST'), raises(InvalidEnumItem))
def test_extra(self): """ Extra parameters are retrieved by `EnumItem.get` if they exist otherwise a default value is returned instead. """ enum = Enum('doc', enum_values_fixture()) self.assertThat( enum.get(u'foo').get('quux'), Equals(u'hello')) self.assertThat( enum.get(u'foo').get('frob'), Equals(u'world')) self.assertThat( enum.get(u'bar').get('quux'), Equals(u'goodbye')) self.assertThat( enum.get(u'bar').get('boop'), Is(None)) self.assertThat( enum.get(u'bar').get('beep', 42), Equals(42))
def test_hidden(self): """ Enumeration items that have their ``hidden`` flag set are not listed in the result of `Enum.as_pairs`. """ values = [ EnumItem(u'foo', u'Foo', hidden=True), EnumItem(u'bar', u'Bar'), EnumItem(u'pop', u'Pop')] enum = Enum('doc', values) enum.get(u'pop').hidden = True pairs = enum.as_pairs() self.assertThat(pairs, Equals([(u'bar', u'Bar')]))