def test_find(self): """ Finding an enumeration item by extra value gets the first matching item or ``None`` if there are no matches. """ values = enum_values_fixture() enum = Enum('doc', values) self.assertThat(enum.find(quux=u'hello'), Is(values[0])) self.assertThat(enum.find(frob=u'world'), Is(values[0])) self.assertThat(enum.find(quux=u'goodbye'), Is(values[1])) self.assertThat(enum.find(haha=u'nothanks'), Is(None))
def test_find_invalid_usage(self): """ Passing fewer or more than one query raises `ValueError`. """ enum = Enum('doc', []) self.assertThat(enum.find, raises(ValueError)) self.assertThat( lambda: enum.find(foo=u'a', bar=u'b'), raises(ValueError))