简介:我正在尝试创建一个简单的模拟来替换redis.从代码中可以明显看出我要做的事情.简短的版本是,模拟不起作用 - 它仍然是redis和创建密钥.
tests.py:
from django.test import TestCase
import mock
from redis_mock.simple_redis_mock import redisMockGetRedis, redisMockFlushDB
from account.util import get_redis
class SimpleTest(TestCase):
def setUp(self):
redisMockFlushDB()
@mock.patch("account.util.get_redis", redisMockGetRedis)
def test_redis(self):
key = "hello123"
value = "world123"
r = get_redis()
r.set(key, value)
value2 = r.get(key)
self.assertEqual(value, value2)
Run Code Online (Sandbox Code Playgroud)
util.py:
import redis
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DEFAULT_DB = 0
def get_redis():
print "account.util.get_redis"
return redis.StrictRedis(
REDIS_HOST,
REDIS_PORT,
REDIS_DEFAULT_DB
)
Run Code Online (Sandbox Code Playgroud)
simple_redis_mock.py:
"""
A simple mock for Redis. Just mocks set, get and expire commands. …
Run Code Online (Sandbox Code Playgroud)Run Code Online (Sandbox Code Playgroud)