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. """ object1, object2, object3 = object(), object(), object() values = object_enum_values_fixture(object1, object2, object3) enum = ObjectEnum('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. """ object1, object2, object3 = object(), object(), object() values = object_enum_values_fixture(object1, object2, object3) enum = ObjectEnum('doc', values) self.assertThat( enum.get(object1).get('quux'), Equals(u'hello')) self.assertThat( enum.get(object1).get('frob'), Equals(u'world')) self.assertThat( enum.get(object2).get('quux'), Equals(u'goodbye')) self.assertThat( enum.get(object2).get('boop'), Is(None)) self.assertThat( enum.get(object2).get('beep', 42), Equals(42))