Simplify FactCache.copy()

Also fix the bug (missing from six import iteritems) I introduced in
823677b490.
This commit is contained in:
Marius Gedminas 2015-09-03 09:43:10 +03:00
parent ce97874523
commit a32bf1ec18
2 changed files with 17 additions and 2 deletions

View file

@ -60,7 +60,7 @@ class FactCache(MutableMapping):
def copy(self): def copy(self):
""" Return a primitive copy of the keys and values from the cache. """ """ Return a primitive copy of the keys and values from the cache. """
return dict([(k, v) for (k, v) in iteritems(self)]) return dict(self)
def keys(self): def keys(self):
return self._plugin.keys() return self._plugin.keys()

View file

@ -19,7 +19,8 @@
from __future__ import (absolute_import, division, print_function) from __future__ import (absolute_import, division, print_function)
__metaclass__ = type __metaclass__ = type
from ansible.compat.tests import unittest from ansible.compat.tests import unittest, mock
from ansible.plugins.cache import FactCache
from ansible.plugins.cache.base import BaseCacheModule from ansible.plugins.cache.base import BaseCacheModule
from ansible.plugins.cache.memory import CacheModule as MemoryCache from ansible.plugins.cache.memory import CacheModule as MemoryCache
@ -42,6 +43,20 @@ else:
from ansible.plugins.cache.redis import CacheModule as RedisCache from ansible.plugins.cache.redis import CacheModule as RedisCache
class TestFactCache(unittest.TestCase):
def setUp(self):
with mock.patch('ansible.constants.CACHE_PLUGIN', 'memory'):
self.cache = FactCache()
def test_copy(self):
self.cache['avocado'] = 'fruit'
self.cache['daisy'] = 'flower'
a_copy = self.cache.copy()
self.assertEqual(type(a_copy), dict)
self.assertEqual(a_copy, dict(avocado='fruit', daisy='flower'))
class TestAbstractClass(unittest.TestCase): class TestAbstractClass(unittest.TestCase):
def setUp(self): def setUp(self):