用于测试目的的redis api的伪实现。

fakeredis-fix的Python项目详细描述


这是一个“fakeredis”分支,支持python 3.3,不与“rq”断开。当修复程序合并到主存储库时,此包将被删除。

fake redis:redis py的伪版本

https://secure.travis-ci.org/jamesls/fakeredis.png?branch=masterhttps://coveralls.io/repos/jamesls/fakeredis/badge.png?branch=master

fakeredis是redis py python客户端的纯python实现 它模拟与redis服务器的对话。这是为一个 目的:编写单元测试。设置redis并不难,但是 很多时候,您希望编写不与外部服务器通信的单元测试 (如redis)。这个模块现在允许测试简单地使用这个 模块是redis的合理替代品。

如何使用

目的是让伪君子假装你在和一个真正的 redis服务器。它通过在fakeredis模块中存储状态来实现这一点。 例如:

>>> import fakeredis
>>> r = fakeredis.FakeStrictRedis()
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
'bar'
>>> r.lpush('bar', 1)
1
>>> r.lpush('bar', 2)
2
>>> r.lrange('bar', 0, -1)
[2, 1]

通过在fakeredis模块中存储状态,实例可以共享 数据:

>>> import fakeredis
>>> r1 = fakeredis.FakeStrictRedis()
>>> r1.set('foo', 'bar')
True
>>> r2 = fakeredis.FakeStrictRedis()
>>> r2.get('foo')
'bar'
>>> r2.set('bar', 'baz')
True
>>> r1.get('bar')
'baz'
>>> r2.get('bar')
'baz'

fakeredis实现的接口与redis-py相同, 流行的用于python的redis客户端,并对响应建模 第2.6版。

未实现的命令

所有的redis命令都是用 这些例外情况:

散列

  • hincrbyfloat

字符串

  • incrbyfloat
  • bitop
  • psetex

一般

  • restore
  • dump
  • pexpireat
  • pttl
  • pexpire
  • migrate
  • object

服务器

  • debug object
  • client list
  • lastsave
  • slowlog
  • sync
  • shutdown
  • monitor
  • client kill
  • config resetstat
  • time
  • config get
  • save
  • debug segfault
  • bgsave
  • bgrewriteaof
  • slaveof
  • info
  • config set
  • dbsize

连接

  • echo
  • select
  • quit
  • auth

脚本

  • script flush
  • script kill
  • script load
  • evalsha
  • eval
  • script exists

PubSub

  • punsubscribe
  • subscribe
  • publish
  • psubscribe
  • unsubscribe

贡献

欢迎捐款。请参阅contributing guide了解 更多细节。

运行测试

为了确保与真正的redis对等,有一组集成测试 它反映了单元测试。对于所编写的每个unittest,相同的 使用真正的redis py客户机对真正的redis实例运行测试 实例。为了运行这些测试,必须有一个redis服务器在运行 在本地主机上,端口6379(默认设置)。集成测试使用 DB=10,以最小化与现有ReIIS实例的冲突。

要运行所有测试,请安装需求文件:

pip install -r requirements.txt

如果您只想运行unittests:

nosetests test_fakeredis.py:TestFakeStrictRedis test_fakeredis.py:TestFakeRedis

因为这个模块试图提供与redis-py相同的接口, python绑定到redis,这是测试每个 unittest并在真正的redis服务器上运行它。赝品和真正的redis 服务器应该给出相同的结果。这确保了两者之间的平等。你 可以像这样运行这些“集成”测试:

nosetests test_fakeredis.py:TestRealStrictRedis test_fakeredis.py:TestRealRedis

在实现方面,TestRealRedisTestFakeRedis重写要创建的工厂方法 redis.Redis(redis的实际python客户机)的实例 而不是fakeredis.FakeStrictRedis

要同时运行单元测试和“集成”测试,请运行:

nosetests

如果redis没有运行,而您试图对真正的redis服务器运行测试, 这些测试的结果为“s”,表示跳过。

有些测试测试redis阻塞操作 慢点。如果你想在日常开发中跳过这些测试, 它们都被标记为“慢速”,因此您可以通过运行来跳过它们:

nosetests -a '!slow'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android:在ListView上使用setOnItemClickListener   使用Netbeans 7.0连接到SQL Server的java正在挂起   java Spring3依赖项注入不适用于mule   java Flink SQL结果字段与LocalDateTime上请求的类型错误不匹配   java找不到文件的结尾   考虑到NamingStrategy,java有没有办法将字符串转换为JsonNode?   使用Netbeans/ant部署java(命令行)应用程序   java如何修复Spring引导多部分上载中的“所需请求部分不存在”   java在应用程序启动时通过引用获取映射未知目标实体属性异常   java形状旋转问题Java2d   Weblogic服务器上的java ExecuteAndWaitInterceptor问题   JavaSpringBoot:project将图像保存在错误的路径中,并且在使用IDEIntellji打开时不显示图像   类向java接口添加方法   Swing组件上的Java 7泛型   sql server如何从java获取用户名。sql。联系   java如何检查该行是否与正则表达式(regex)冲突?   java如何在spring引导安全中为计数失败登录设置验证登录为false   图像如何在Java中使PNG的白色透明?