Пример #1
0
 def setUp(self):
     """初始化"""
     super(FunctionTest, self).setUp()
     # 是否缓存的标识
     self.cache_time = 0
     # 先清空之前的缓存,避免多次测试互相干扰
     cache.clear()
     if getattr(cache, 'keys', None):
         assert cache.keys('*') == []
Пример #2
0
    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  # 使用了缓存