class TestSNMPSectionMeta: @pytest.mark.parametrize("meta", [ SectionMeta(checking=False, disabled=False, fetch_interval=None), SectionMeta(checking=True, disabled=False, fetch_interval=None), ]) def test_serialize(self, meta): assert SectionMeta.deserialize(meta.serialize()) == meta
def test_fetch_from_io_partially_empty( self, monkeypatch: MonkeyPatch, fetcher: SNMPFetcher ) -> None: section_name = SectionName("pum") monkeypatch.setattr( fetcher, "sections", { section_name: SectionMeta( checking=True, disabled=False, redetect=False, fetch_interval=None, ), }, ) table = [["1"]] monkeypatch.setattr( snmp_table, "get_snmp_table", lambda tree, **__: table if tree.base == fetcher.plugin_store[section_name].trees[0].base else [], ) assert fetcher.fetch(Mode.CHECKING) == result.OK({section_name: [table, []]})
def test_fetch_from_io_non_empty(self, monkeypatch: MonkeyPatch, fetcher: SNMPFetcher) -> None: table = [["1"]] monkeypatch.setattr( snmp_table, "get_snmp_table", lambda *_, **__: table, ) section_name = SectionName("pim") monkeypatch.setattr( fetcher, "sections", { section_name: SectionMeta( checking=True, disabled=False, redetect=False, fetch_interval=None, ), }, ) assert fetcher.fetch(Mode.INVENTORY) == result.OK({}) # 'pim' is not an inventory section assert fetcher.fetch(Mode.CHECKING) == result.OK({section_name: [table]}) monkeypatch.setattr( snmp, "gather_available_raw_section_names", lambda *_, **__: {SectionName("pim")}, ) assert fetcher.fetch(Mode.DISCOVERY) == result.OK({section_name: [table]})
def _make_sections(self) -> Dict[SectionName, SectionMeta]: checking_sections = self._make_checking_sections() disabled_sections = self._make_disabled_sections() return { name: SectionMeta( checking=name in checking_sections, disabled=name in disabled_sections, fetch_interval=self.host_config.snmp_fetch_interval(name), ) for name in (checking_sections | disabled_sections) }
def test_fetch_from_io_non_empty(self, monkeypatch, fetcher): table = [['1']] monkeypatch.setattr( snmp_table, "get_snmp_table", lambda *_, **__: table, ) section_name = SectionName('pim') monkeypatch.setattr( fetcher, "sections", { section_name: SectionMeta( checking=True, disabled=False, fetch_interval=None, ), }) assert fetcher.fetch(Mode.INVENTORY) == result.OK( {}) # 'pim' is not an inventory section assert fetcher.fetch(Mode.CHECKING) == result.OK( {section_name: [table]})
def test_serialize(self, meta: SectionMeta) -> None: assert SectionMeta.deserialize(meta.serialize()) == meta