code: def mock_decorator_with_params(*oargs, **okwargs):  # pylint: disable=unused-argument
      '''
      Optionally mock a decorator that takes parameters
  
      E.g.:
  
      @blah(stuff=True)
      def things():
          pass
      '''
      def inner(fn, *iargs, **ikwargs):  # pylint: disable=unused-argument
          if hasattr(fn, '__call__'):
              return fn
          return Mock()
      return innef mock_decorator_with_params(*oargs, **okwargs):  # pylint: disable=unused-argument
      '''
      Optionally mock a decorator that takes parameters
  
      E.g.:
  
      @blah(stuff=True)
      def things():
          pass
      '''
      def inner(fn, *iargs, **ikwargs):  # pylint: disable=unused-argument
          if hasattr(fn, '__call__'):
              return fn
          return Mock()
      return inner
docs: Optionally mock a decorator that takes parameters
  
      E.g.:
  
      @blah(stuff=True)
      def things():
          pass