Esempio n. 1
0
 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'
Esempio n. 3
0
 def setUp(self):
     # memory plugin cache
     self.cache = CachePluginAdjudicator()
     self.cache['cache_key'] = {'key1': 'value1', 'key2': 'value2'}
     self.cache['cache_key_2'] = {'key': 'value'}
Esempio n. 4
0
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