def test__should_cache(instance): now = time.time() # do not use fixtures for the check instance, some params are set at # __init__ time and we need to instantiate the check multiple times check = VSphereLegacyCheck('vsphere', {}, [instance]) i_key = check._instance_key(instance) # first run should always cache assert check._should_cache(instance, CacheConfig.Morlist) assert check._should_cache(instance, CacheConfig.Metadata) # explicitly set cache expiration times, don't use defaults so we also test # configuration is properly propagated init_config = { 'refresh_morlist_interval': 2 * REFRESH_MORLIST_INTERVAL, 'refresh_metrics_metadata_interval': 2 * REFRESH_METRICS_METADATA_INTERVAL, } check = VSphereLegacyCheck('vsphere', init_config, [instance]) # simulate previous runs, set the last execution time in the past check.cache_config.set_last(CacheConfig.Morlist, i_key, now - (2 * REFRESH_MORLIST_INTERVAL)) check.cache_config.set_last(CacheConfig.Metadata, i_key, now - (2 * REFRESH_METRICS_METADATA_INTERVAL)) with mock.patch("time.time", return_value=now): assert not check._should_cache(instance, CacheConfig.Morlist) assert not check._should_cache(instance, CacheConfig.Metadata)
def test__init__(instance): with pytest.raises(BadConfigError): # Must define a unique 'name' per vCenter instance VSphereLegacyCheck('vsphere', {}, [{'': ''}]) init_config = { 'clean_morlist_interval': 50, 'refresh_morlist_interval': 42, 'refresh_metrics_metadata_interval': -42, 'batch_property_collector_size': -1, } check = VSphereLegacyCheck('vsphere', init_config, [instance]) i_key = check._instance_key(instance) assert check.time_started > 0 assert not check.server_instances assert check.cache_config.get_interval(CacheConfig.Morlist, i_key) == 42 assert check.cache_config.get_interval(CacheConfig.Metadata, i_key) == -42 assert check.clean_morlist_interval == 50 assert len(check.event_config) == 1 assert 'vsphere_mock' in check.event_config assert not check.registry assert not check.latest_event_query assert check.batch_collector_size == 0 assert check.batch_morlist_size == 50 assert check.excluded_host_tags == []