多个django视图之间的fakeredis

798qvoo8  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(288)

我有一个涉及多个django视图的测试
多个视图之间似乎没有共享fakeredis,我尝试运行以下代码:

import fakeredis
from testfixtures import Replacer

class TestWithFakeRedis(TestCase):
    def setup_redis(self, test_func):
        fake_redis = fakeredis.FakeStrictRedis()
        with Replacer() as replace:
            replace('app1.views.redis_connection', fake_redis)
            replace("app2.views.redis_connection", fake_redis)
            replace("app2.views.redis_connection", fake_redis)
            test_func(fake_redis)

    def test_something(self):
         def test_func(redis_connection):
            # some testing coded here
            pass
         self.setup_redis(test_func)

fakeredis不能在多个视图之间传递,这是我需要的
提前谢谢,
纳达夫

bpzcxfmw

bpzcxfmw1#

我的解决方案涉及使用unittest.mock.patch:

import fakeredis
fake_redis = fakeredis.FakeRedis()

@patch("app_name1.views.redis_connection", fake_redis)
@patch("app_name2.views.redis_connection", fake_redis)
@patch("app_name3.views.redis_connection", fake_redis)
class TestSomethingWithRedis(TestCase):
    pass

如果您想检查测试中的查询,请使用假\u redis

相关问题