def test_group_value(monkeypatch) -> None: monkeypatch.setattr(utils, "painter_registry", PainterRegistry()) def rendr(row) -> tuple[str, str]: return ("abc", "xyz") utils.register_painter( "tag_painter", { "title": "Tag painter", "short": "tagpaint", "columns": ["x"], "sorter": "aaaa", "options": ["opt1"], "printable": False, "paint": rendr, "groupby": "dmz", }, ) painter: Painter = utils.painter_registry["tag_painter"]() dummy_cell: Cell = Cell(View("", {}, {}), PainterSpec(painter.ident)) assert group_value({"host_tags": { "networking": "dmz" }}, [dummy_cell]) == ("dmz", )
def test_query_row_table_inventory(monkeypatch): row_table = inventory.RowTableInventory("invtesttable", ".foo.bar:") view = View("", {}, {}) monkeypatch.setattr(row_table, "_get_raw_data", lambda only_sites, query: RAW_ROWS) monkeypatch.setattr(row_table, "_get_inv_data", lambda hostrow: INV_ROWS) rows, _len_rows = row_table.query(view, [], "", None, None, []) for row in rows: assert set(row) == set(EXPECTED_INV_KEYS)
def test_query_row_table_inventory_history_add_columns(monkeypatch): row_table = inventory.RowTableInventoryHistory() view = View("", {}, {}) monkeypatch.setattr(row_table, "_get_raw_data", lambda only_sites, query: RAW_ROWS2) monkeypatch.setattr(row_table, "_get_inv_data", lambda hostrow: INV_HIST_ROWS) rows, _len_rows = row_table.query(view, ['host_foo'], "", None, None, []) for row in rows: assert set(row) == set(EXPECTED_INV_HIST_KEYS + ['host_foo'])
def get_topology_view_and_filters() -> Tuple[View, List[Filter]]: view_name = "topology_filters" view_spec = get_permitted_views()[view_name] view = View(view_name, view_spec, view_spec.get("context", {})) filters = cmk.gui.visuals.filters_of_visual(view.spec, view.datasource.infos, link_filters=view.datasource.link_filters) show_filters = cmk.gui.visuals.visible_filters_of_visual(view.spec, filters) return view, show_filters
def test_query_row_multi_table_inventory_add_columns(monkeypatch): sources = list(zip(["invtesttable1", "invtesttable2"], [".foo.bar:", "foo.baz:"])) row_table = inventory.RowMultiTableInventory(sources, ["sid"], []) view = View("", {}, {}) monkeypatch.setattr(row_table, "_get_raw_data", lambda only_sites, query: RAW_ROWS2) monkeypatch.setattr(row_table, "_get_inv_data", lambda hostrow: INV_ROWS_MULTI) rows, _len_rows = row_table.query(view, ['host_foo'], "", None, None, []) for row in rows: assert set(row) == set(EXPECTED_INV_MULTI_KEYS + ['host_foo'])
def _get_topology_view_and_filters(self): view_spec = get_permitted_views()["topology_filters"] view_name = "topology_filters" view = View(view_name, view_spec) filters = cmk.gui.visuals.filters_of_visual( view.spec, view.datasource.infos, link_filters=view.datasource.link_filters) show_filters = cmk.gui.visuals.visible_filters_of_visual( view.spec, filters) return view, show_filters
def test_row_table_object(mock_livestatus, request_context): live = mock_livestatus live.add_table( "hosts", [{ "name": "heute", "alias": "heute", "host_state": 0, "host_has_been_checked": False, }], ) live.expect_query("GET hosts\n" "Columns: host_has_been_checked host_state name\n" "Filter: name = heute") view_name = "hosts" view_spec = { "datasource": "hosts", "painters": [], } context: VisualContext = { "host": { "host": "heute" }, "service": {}, } view = View(view_name, view_spec, context) rt = RowTableLivestatus("hosts") # @Christoph: Test geht kaputt wenn headers="Filter: host_name = heute" # der host_ prefix, passend angepasst generiert eine extra query? with live(expect_status_query=True): rt.query( view=view, columns=["name"], headers="Filter: name = heute", only_sites=None, limit=None, all_active_filters=[], )
def test_row_table_object(mock_livestatus, register_builtin_html): live = mock_livestatus live.add_table( 'hosts', [{ 'name': 'heute', 'alias': 'heute', 'host_state': 0, 'host_has_been_checked': False, }], ) live.expect_query('GET hosts\n' 'Columns: host_has_been_checked host_state name\n' 'Filter: name = heute') view_name = "hosts" view_spec = { "datasource": "hosts", "painters": [], } context = { 'host': 'heute', 'service': None, } view = View(view_name, view_spec, context) rt = RowTableLivestatus("hosts") with live(expect_status_query=True): rt.query( view=view, columns=['name'], headers='Filter: name = heute', only_sites=None, limit=None, all_active_filters=[], )