Exemple #1
0
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
Exemple #2
0
 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, []]})
Exemple #3
0
    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]})
Exemple #4
0
 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)
     }
Exemple #5
0
    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]})
Exemple #6
0
 def test_serialize(self, meta: SectionMeta) -> None:
     assert SectionMeta.deserialize(meta.serialize()) == meta