def METHOD_NAME(*exceptions):
    """Test must raise one of expected exceptions to pass.
    Example use::
      @raises(TypeError, ValueError)
      def test_raises_type_error():
          raise TypeError("This test passes")
      @raises(Exception)
      def test_that_fails_by_passing():
          pass
    If you want to test many assertions about exceptions in a single test,
    you may want to use `assert_raises` instead.
    """
    valid = ' or '.join([e.__name__ for e in exceptions])
    def decorate(func):
        name = func.__name__
        def newfunc(*arg, **kw):
            try:
                func(*arg, **kw)
            except exceptions:
                pass
            except:
                raise
            else:
                message = "%s() did not raise %s" % (name, valid)
                raise AssertionError(message)
        newfunc = make_decorator(func)(newfunc)
        return newfunc
    return decorate