def test_cache_bypass(self):
        wrapper = Memcached('/myprefix', mc_client, bypass_cache=True)
        myfunc = wrapper.wrap(self.myfunc)
        v1 = myfunc(1)
        v2 = myfunc(1)
        assert v1 != v2

        # check v2 is saved
        wrapper = Memcached('/myprefix', mc_client)
        mynewfunc = wrapper.wrap(self.myfunc)
        v3 = mynewfunc(1)
        assert v2 == v3
    def test_no_mc_client(self):
        wrapper = Memcached('/myprefix')
        myfunc = wrapper.wrap(self.myfunc)
        functions = [myfunc]

        for f in functions:
            v1 = f(1)
            v2 = f(1)
            v3 = f(1)
            assert v1 != v2
            assert v2 != v3
    def test_negative(self):
        mc_client = mock()

        def dummy(a, b, c):
            raise Exception('negative result should not be saved')

        mc_client.set = dummy
        wrapper = Memcached('/myprefix', mc_client, cache_negative=False)
        myfunc = wrapper.wrap(self.negative)

        functions = [self.decorate_negative, myfunc]
        for f in functions:
            v1 = f(1)
            v2 = f(1)
            assert v1 == v2