Пример #1
0
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
Пример #2
0
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",
                                                               "")])
Пример #3
0
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"
Пример #4
0
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',
                                                               '')])
Пример #5
0
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