Test coverage for vnccollab.common.cache

vnccollab/      covered 95% (12 of 287 uncovered)
    common/      covered 95% (12 of 287 uncovered)
        cache.py      covered 100% (0 of 26 uncovered)

    1: from time import time
    1: from collections import defaultdict
       
       
    2: class TimeCacheKey:
           """Helper class for plone.memoize.ram.cache.
       
    1:     Memoizes a callable for a time period."""
       
    1:     def __init__(self, period, last_time=0):
    2:         self.period = period
    2:         self.last_time = defaultdict(int)
       
    1:     def __call__(self, method, *args, **kargs):
    5:         nargs = list(args)
    5:         nkargs = self._kargs_to_list(kargs)
    5:         nargs.extend(nkargs)
    5:         nargs = str(nargs)
    5:         now = time()
    5:         last_time = self.last_time[nargs]
    5:         if now - last_time > self.period:
    5:             self.last_time[nargs] = now
    5:             last_time = now
       
    5:         return nargs, last_time
       
    1:     def _kargs_to_list(self, kargs):
    5:         lst = []
   11:         for k, v in sorted(kargs.items()):
    6:             if type(v) == list:
    4:                 vv = ','.join(sorted(v))
                   else:
    2:                 vv = v
    6:             lst.append((k, vv))
    5:         return lst