def setUp(self): self.cache_dir = tempfile.mkdtemp(prefix='ansible-plugins-cache-') self.cache = CachePluginAdjudicator(plugin_name='jsonfile', _uri=self.cache_dir, _prefix=self.cache_prefix) self.cache['cache_key'] = {'key1': 'value1', 'key2': 'value2'} self.cache['cache_key_2'] = {'key': 'value'}
class TestCachePluginAdjudicator: # memory plugin cache cache = CachePluginAdjudicator() cache['cache_key'] = {'key1': 'value1', 'key2': 'value2'} cache['cache_key_2'] = {'key': 'value'} def test___setitem__(self): self.cache['new_cache_key'] = { 'new_key1': ['new_value1', 'new_value2'] } assert self.cache['new_cache_key'] == { 'new_key1': ['new_value1', 'new_value2'] } def test_inner___setitem__(self): self.cache['new_cache_key'] = { 'new_key1': ['new_value1', 'new_value2'] } self.cache['new_cache_key']['new_key1'][0] = 'updated_value1' assert self.cache['new_cache_key'] == { 'new_key1': ['updated_value1', 'new_value2'] } def test___contains__(self): assert 'cache_key' in self.cache assert 'not_cache_key' not in self.cache def test_get(self): assert self.cache.get('cache_key') == { 'key1': 'value1', 'key2': 'value2' } def test_get_with_default(self): assert self.cache.get('foo', 'bar') == 'bar' def test_get_without_default(self): assert self.cache.get('foo') is None def test___getitem__(self): with pytest.raises(KeyError) as err: self.cache['foo'] def test_pop_with_default(self): assert self.cache.pop('foo', 'bar') == 'bar' def test_pop_without_default(self): with pytest.raises(KeyError) as err: assert self.cache.pop('foo') def test_pop(self): v = self.cache.pop('cache_key_2') assert v == {'key': 'value'} assert 'cache_key_2' not in self.cache def test_update(self): self.cache.update({'cache_key': {'key2': 'updatedvalue'}}) assert self.cache['cache_key']['key2'] == 'updatedvalue'
def setUp(self): # memory plugin cache self.cache = CachePluginAdjudicator() self.cache['cache_key'] = {'key1': 'value1', 'key2': 'value2'} self.cache['cache_key_2'] = {'key': 'value'}
class TestCachePluginAdjudicator(unittest.TestCase): def setUp(self): # memory plugin cache self.cache = CachePluginAdjudicator() self.cache['cache_key'] = {'key1': 'value1', 'key2': 'value2'} self.cache['cache_key_2'] = {'key': 'value'} def test___setitem__(self): self.cache['new_cache_key'] = { 'new_key1': ['new_value1', 'new_value2'] } assert self.cache['new_cache_key'] == { 'new_key1': ['new_value1', 'new_value2'] } def test_inner___setitem__(self): self.cache['new_cache_key'] = { 'new_key1': ['new_value1', 'new_value2'] } self.cache['new_cache_key']['new_key1'][0] = 'updated_value1' assert self.cache['new_cache_key'] == { 'new_key1': ['updated_value1', 'new_value2'] } def test___contains__(self): assert 'cache_key' in self.cache assert 'not_cache_key' not in self.cache def test_get(self): assert self.cache.get('cache_key') == { 'key1': 'value1', 'key2': 'value2' } def test_get_with_default(self): assert self.cache.get('foo', 'bar') == 'bar' def test_get_without_default(self): assert self.cache.get('foo') is None def test___getitem__(self): with pytest.raises(KeyError) as err: self.cache['foo'] def test_pop_with_default(self): assert self.cache.pop('foo', 'bar') == 'bar' def test_pop_without_default(self): with pytest.raises(KeyError) as err: assert self.cache.pop('foo') def test_pop(self): v = self.cache.pop('cache_key_2') assert v == {'key': 'value'} assert 'cache_key_2' not in self.cache def test_update(self): self.cache.update({'cache_key': {'key2': 'updatedvalue'}}) assert self.cache['cache_key']['key2'] == 'updatedvalue' def test_flush(self): # Fake that the cache already has some data in it but the adjudicator # hasn't loaded it in. self.cache._plugin.set('monkey', 'animal') self.cache._plugin.set('wolf', 'animal') self.cache._plugin.set('another wolf', 'another animal') # The adjudicator does't know about the new entries assert len(self.cache) == 2 # But the cache itself does assert len(self.cache._plugin._cache) == 3 # If we call flush, both the adjudicator and the cache should flush self.cache.flush() assert len(self.cache) == 0 assert len(self.cache._plugin._cache) == 0