def setUp(self): """初始化""" super(FunctionTest, self).setUp() # 是否缓存的标识 self.cache_time = 0 # 先清空之前的缓存,避免多次测试互相干扰 cache.clear() if getattr(cache, 'keys', None): assert cache.keys('*') == []
def test_fn_timeout2(self): logging.info(u'fn 写上缓存时间的调用方式,缓存1秒') cache.default_timeout = 1 @fn # 相当于: fn(test1) (arg1, arg2) def test1(a, b=2, c=None): self.cache_time += 1 logging.info(u"test1 a=%s, b=%s, c=%s", a, b, c) return a + b @fn(1) # 相当于: fn(1) (test2) (arg1, arg2) def test2(a, b=2, c=None): self.cache_time += 1 logging.info(u"a=%s, b=%s, c=%s", a, b, c) return a + b @fn(timeout=1) # 相当于: fn(timeout=1) (test3) (arg1, arg2) def test3(a, b=2, c=None): self.cache_time += 1 logging.info(u"a=%s, b=%s, c=%s", a, b, c) return a + b assert self.cache_time == 0 test1(1, b=22, c={'a': 'aa', 'b': 'bb'}) test2(1, b=22, c={'a': 'aa', 'b': 'bb'}) test3(1, b=22, c={'a': 'aa', 'b': 'bb'}) assert self.cache_time == 3 # 没有缓存 test1(1, b=22, c={'a': 'aa', 'b': 'bb'}) test2(1, b=22, c={'a': 'aa', 'b': 'bb'}) test3(1, b=22, c={'a': 'aa', 'b': 'bb'}) assert self.cache_time == 3 # 使用了缓存 cache.clear() test1(1, b=22, c={'a': 'aa', 'b': 'bb'}) test2(1, b=22, c={'a': 'aa', 'b': 'bb'}) test3(1, b=22, c={'a': 'aa', 'b': 'bb'}) assert self.cache_time == 6 # 没有缓存 test1(1, b=22, c={'a': 'aa', 'b': 'bb'}) test2(1, b=22, c={'a': 'aa', 'b': 'bb'}) test3(1, b=22, c={'a': 'aa', 'b': 'bb'}) assert self.cache_time == 6 # 使用了缓存 time.sleep(1.1) # 暂停一下,让缓存过期 logging.info(u'缓存超时后') test1(1, b=22, c={'a': 'aa', 'b': 'bb'}) test2(1, b=22, c={'a': 'aa', 'b': 'bb'}) test3(1, b=22, c={'a': 'aa', 'b': 'bb'}) assert self.cache_time == 9 # 没有缓存 test1(1, b=22, c={'a': 'aa', 'b': 'bb'}) test2(1, b=22, c={'a': 'aa', 'b': 'bb'}) test3(1, b=22, c={'a': 'aa', 'b': 'bb'}) assert self.cache_time == 9 # 使用了缓存