code: def test_errorbars_padding_hard_range(self):
      errorbars = (
          ErrorBars([(1, 1, 0.5), (2, 2, 0.5), (3, 3, 0.5)])
          .redim.range(y=(0, 4))
          .opts(padding=0.1)
      )
      plot = bokeh_renderer.get_plot(errorbars)
      x_range, y_range = (
          plot.handles["x_range"],
          plot.handles["y_range"],
      )
      self.assertEqual(x_range.start, 0.8)
      self.assertEqual(x_range.end, 3.2)
      self.assertEqual(y_range.start, 0)
      self.assertEqual(y_range.end, 4)
  
file_path: holoviews/holoviews/tests/plotting/bokeh/test_errorbarplot.py
imports: import numpy
  from bokeh.models import CategoricalColorMapper, LinearColorMapper
  from holoviews.element import ErrorBars
  from holoviews.plotting.bokeh.util import property_to_dict
  from .test_plot import TestBokehPlot, bokeh_renderer
label_desc: Use image node_id 2 for calling the TestErrorBarsPlot obj's underlying member method code with example usage: obj.test_errorbars_padding_hard_range() without return types