简化对象部分匹配的库。

AnyValid的Python项目详细描述


任何有效的
=========

anyvalid类是一个包装类,例如,
`formencode.validators<;http://www.formencode.org/en/latest/modules/validators.html;module formencode.validators>;`,
这允许您部分指定它应该匹配的对象类型。到
看到它的有用性,可能更容易首先查看
mock的任意对象(`from unittest.mock's
文档<;http://docs.python.org/3/library/unittest.mock.html any>;`:

有时您可能需要对
mock调用中的参数,但要么不关心
参数或希望从调用参数和
对它们做出更复杂的断言。

要忽略某些参数,可以传入比较
等于一切。调用assert调用
断言调用一次后,不管是什么
进来了。

…代码::python

>;
>;mock=模拟(返回值=无)
>;>mock('foo',bar=object())
>;>;mock.assert_called_once_with('foo',bar=any)

any也可用于与调用列表进行比较,如
模拟调用:

…代码::python

>;
>;m=magicmock(返回值=无)
>>米(1)
>;米(1,2)
>>m(对象())
>;m.mock_calls==[呼叫(1),呼叫(1,2),任意]
正确

现在,如果您想对
参数,但可能不知道确切的值,或者希望避免
某些值(例如“none”)。这是任何合法的人都可能来的地方
方便。它提供了一种非常简单的方法来利用所有伟大的工作
已放入formencode的验证器中,以便您的测试
代码可以生成高级断言,同时易于阅读和维护。

示例
========

简单参数匹配:

…代码::python

>;>;
>;>>来自模拟导入模拟
>>gt;从任何有效导入any valid、int、string
>;>;
>>>定义检查调用(foo,bar):
…尝试:
…mock=mock(返回值=none)
…模拟(foo,bar=bar)
…mock.assert_用(anyvalid(字符串(min_lenght=3))调用了_once_,
…bar=anyvalid(int(min=2)))
…除断言者外:
…返回false
…返回真值

>>>检查呼叫('fo',1)
错误
>>>检查呼叫(8,0)
错误
>>>检查呼叫('foo',2)
正确

匹配松散定义的dict参数:

…代码::python

>>>>从任何有效的导入任何有效的、数字的、其中之一的
>>gt;有效输入={…'堆芯温度:任意有效(数值(最小=35,最大=41.5)),
…协议:anyValid(其中一个(['https','http']),
…}
>>>模拟=模拟(返回值=无)
>>gt;模拟(核心温度:36.8,“协议”:“https”)
>>>模拟.断言用(有效的输入)调用
>;>;

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

推荐PyPI第三方库


热门话题
java我初始化“temps”的方式有什么问题?   junit有没有办法测试Java方法不会引发特定类型的异常?   java如何覆盖WebSphereCommunityEdition(WCE)2.1的默认持久性提供程序OpenJPA   Java Swing如何使JButton的边界不可见?   java如何在Eclipse中恢复已删除的文件?   java我正在努力争取到第二天某个小时的剩余时间   java将类放入哈希表   语法Java:system。出来println连接字符串中的内容(非常简单的问题)   针对多个单词的java查询文档   Java:循环泛型类型关系不允许从超类型强制转换(javac错误)   swing为第一轮Java切换生成If语句   java使用bufferedReader读取文本文件时添加了一个空格,即安卓   从html文件获取文本字段字符串输入,以便在java类中处理/使用   java如何根据条件进行正则表达式匹配?   在Java中查找字符串中最小的单词   私有void formKeyPressed(java.awt.event.KeyEvent evt)   servlet中文本文件的java读写