def test_dashlet_refresh_intervals(register_builtin_html, type_name, expected_refresh_interval, monkeypatch): dashlet_type = dashboard.dashlet_registry[type_name] assert dashlet_type.initial_refresh_interval() == expected_refresh_interval dashlet_spec = { "type": type_name, } if dashlet_type.has_context(): dashlet_spec["context"] = {} if type_name in ["pnpgraph", "custom_graph"]: monkeypatch.setattr(dashlet_type, "graph_identification", lambda s, c: ("template", {})) monkeypatch.setattr("cmk.gui.plugins.metrics.html_render.resolve_graph_recipe", lambda g, d: [{ "title": '1' }]) monkeypatch.setattr(dashboard.Dashlet, "_get_context", lambda s: {}) dashlet = dashlet_type(dashboard_name="main", dashboard=dashboard._add_context_to_dashboard({}), dashlet_id=1, dashlet=dashlet_spec) assert dashlet.refresh_interval() == expected_refresh_interval
def test_dashlet_context_inheritance(): dashboard_spec = dashboard._add_context_to_dashboard({ "context": { "wato_folder": { "wato_folder": "/aaa/eee" }, "host": { "host": "bla", "neg_host": "" }, } }) dashlet_spec = { "type": "hoststats", "context": { "wato_folder": { "wato_folder": "" } }, "single_infos": [], "show_title": True, "title": "Host Statistics", "refresh": 60, "add_context_to_title": True, "link_from": {}, "position": (61, 1), "size": (30, 18), } HostStats = dashboard.dashlet_registry["hoststats"] dashlet = HostStats(dashboard_name="bla", dashboard=dashboard_spec, dashlet_id=1, dashlet=dashlet_spec) assert dashlet.context == { "host": { "host": "bla", "neg_host": "" }, "wato_folder": { "wato_folder": "" }, } assert sorted(dashlet._dashlet_context_vars()) == sorted([("host", "bla"), ("neg_host", ""), ("wato_folder", "")])
def test_old_dashlet_iframe_render(mocker, register_builtin_html): iframe_render_mock = mocker.Mock() dashlet_type = _legacy_dashlet_type({ "iframe_render": iframe_render_mock.method, }) dashlet = dashlet_type(dashboard_name="main", dashboard=dashboard._add_context_to_dashboard({"mtime": 123}), dashlet_id=1, dashlet={"type": "url"}) assert dashlet.is_iframe_dashlet() dashlet.show() assert iframe_render_mock.called_once() assert dashlet._get_iframe_url() \ == "dashboard_dashlet.py?id=1&mtime=123&name=main"
def test_dashlet_context_inheritance(register_builtin_html): HostStats = dashboard.dashlet_registry["hoststats"] # Set some context filter vars from URL html.request.set_var("host", "bla") html.request.set_var("wato_folder", "/aaa/eee") dashboard_spec = dashboard._add_context_to_dashboard({}) dashlet_spec = { 'type': 'hoststats', 'context': { 'wato_folder': { 'wato_folder': '' } }, 'single_infos': [], 'show_title': True, 'title': u'Host Statistics', 'refresh': 60, 'add_context_to_title': True, 'link_from': {}, 'position': (61, 1), 'size': (30, 18), } dashlet = HostStats(dashboard_name="bla", dashboard=dashboard_spec, dashlet_id=1, dashlet=dashlet_spec) assert dashlet.context == { 'host': { 'host': 'bla' }, 'wato_folder': { 'wato_folder': '' }, } assert sorted(dashlet._dashlet_context_vars()) == sorted([('host', 'bla'), ('wato_folder', '')])
def test_dashlet_refresh_intervals(register_builtin_html, type_name, expected_refresh_interval, monkeypatch): dashlet_type = dashboard.dashlet_registry[type_name] assert dashlet_type.initial_refresh_interval() == expected_refresh_interval dashlet_spec = { "type": type_name, } if dashlet_type.has_context(): dashlet_spec["context"] = {} monkeypatch.setattr(dashboard.Dashlet, "_get_context", lambda s: {}) dashlet = dashlet_type(dashboard_name="main", dashboard=dashboard._add_context_to_dashboard({}), dashlet_id=1, dashlet=dashlet_spec) assert dashlet.refresh_interval() == expected_refresh_interval