diff --git a/panel/layout/base.py b/panel/layout/base.py index 8e780e0f5f..17da6c10cb 100644 --- a/panel/layout/base.py +++ b/panel/layout/base.py @@ -358,6 +358,8 @@ def __init__(self, *objects, **params): "as positional arguments or as a keyword, " "not both." % type(self).__name__) params['objects'] = [panel(pane) for pane in objects] + elif 'objects' in params: + params['objects'] = [panel(pane) for pane in params['objects']] super(Panel, self).__init__(**params) def _process_param_change(self, params): diff --git a/panel/tests/layout/test_base.py b/panel/tests/layout/test_base.py index 7c74365603..bf481854f1 100644 --- a/panel/tests/layout/test_base.py +++ b/panel/tests/layout/test_base.py @@ -54,6 +54,14 @@ def test_layout_constructor(panel): assert all(isinstance(p, Bokeh) for p in layout.objects) +@pytest.mark.parametrize('panel', [Card, Column, Row]) +def test_layout_constructor_with_objects_param(panel): + div1 = Div() + div2 = Div() + layout = panel(objects=[div1, div2]) + assert all(isinstance(p, Bokeh) for p in layout.objects) + + @pytest.mark.parametrize('panel', [Column, Row]) def test_layout_add(panel, document, comm): div1 = Div()