def test_discovery_tags(): """When specifying a tag on discovery, it doesn't make tags leaks between instances.""" instance = common.generate_instance_config(common.SUPPORTED_METRIC_TYPES) instance.pop('ip_address') instance['network_address'] = '192.168.0.0/29' instance['tags'] = ['test:check'] check = SnmpCheck('snmp', {}, [instance]) oids = ['1.3.6.1.4.5', '1.3.6.1.4.5'] def mock_fetch(cfg): if oids: return oids.pop(0) check._running = False raise RuntimeError("Not snmp") check.fetch_sysobject_oid = mock_fetch check.discover_instances(interval=0) config = check._config.discovered_instances['192.168.0.2'] assert set(config.tags) == { 'snmp_device:192.168.0.2', 'test:check', 'snmp_profile:generic-router' }
def test_cache_corrupted(write_mock, read_mock): instance = common.generate_instance_config(common.SUPPORTED_METRIC_TYPES) instance.pop('ip_address') instance['network_address'] = '192.168.0.0/24' read_mock.return_value = '["192.168.0."]' check = SnmpCheck('snmp', {}, [instance]) check.discover_instances = lambda: None check.check(instance) assert not check._config.discovered_instances write_mock.assert_called_once_with('', '[]')
def test_cache_discovered_host(read_mock): instance = common.generate_instance_config(common.SUPPORTED_METRIC_TYPES) instance.pop('ip_address') instance['network_address'] = '192.168.0.0/24' read_mock.return_value = '["192.168.0.1"]' check = SnmpCheck('snmp', {}, [instance]) check.discover_instances = lambda: None check.check(instance) assert '192.168.0.1' in check._config.discovered_instances