Flake8 unittest断言方法检查器
项目描述
flake8-assertive 是一个 Flake8 扩展,鼓励使用更丰富、更具体的 unittest 断言,而不仅仅是典型的 assertEqual(a, b) 和 assertTrue(x) 方法。建议的方法执行更精确的检查,并提供比通用方法更好的错误消息。
原文 |
建议 |
代码 |
---|---|---|
assertTrue(a == b) |
assertEqual(a, b) |
A500 |
assertTrue(a != b) |
assertNotEqual(a, b) |
A500 |
assertFalse(a == b) |
assertNotEqual(a, b) |
A500 |
assertFalse(a != b) |
assertEqual(a, b) |
A500 |
assertTrue(a < b) |
assertLess(a, b) |
A500 |
assertTrue(a <= b) |
assertLessEqual(a, b) |
A500 |
assertTrue(a > b) |
assertGreater(a, b) |
A500 |
assertTrue(a >= b) |
assertGreaterEqual(a, b) |
A500 |
assertTrue(a is b) |
assertIs(a, b) |
A501 |
assertTrue(a is not b) |
assertIsNot(a, b) |
A501 |
assertFalse(a is b) |
assertNotIs(a, b) |
A501 |
断言a不等于b |
assertIs(a, b) |
A501 |
断言a在b中 |
断言a包含在b中 |
A501 |
断言a不在b中 |
断言a不包含在b中 |
A501 |
断言a不在b中 |
断言a不包含在b中 |
A501 |
断言a是b的实例 |
断言a是b的实例 |
A501 |
断言a不是b的实例 |
断言a不是b的实例 |
A501 |
断言a等于round(b, x) |
断言a约等于b,误差为x |
A501 |
断言a约等于round(b, x) |
断言a约等于b,误差为x |
A501 |
断言a不等于round(b, x) |
断言a不约等于b,误差为x |
A501 |
断言a不约等于round(b, x) |
断言a不约等于b,误差为x |
A501 |
断言a等于None |
断言a是None |
A502 |
断言a不等于None |
断言a不是None |
A502 |
断言a是None |
断言a是None |
A502 |
断言a不是None |
断言a不是None |
A502 |
断言a不是None |
断言a不是None |
A502 |
断言a不是None |
断言a是None |
A502 |
断言a等于True |
断言a为True |
A502 |
断言a等于False |
断言a为False |
A502 |
断言a等于b |
assertEqual(a, b) |
A503 |
断言a不等于b |
assertNotEqual(a, b) |
A503 |
断言a约等于b,误差为x |
断言a约等于b,误差为x |
A503 |
断言a不约等于b,误差为x |
断言a不约等于b,误差为x |
A503 |
断言a为True,b为True |
断言a为True,b为True,消息为b |
A504 |
断言a为False,b为True |
断言a为False,b为True,消息为b |
A504 |
注意,一些建议是原始形式的规范化,例如当使用双重否定时(assertFalse(a != b) → assertEqual(a, b))。对于诸如assertFalse(a > b)的情况,它可能与assertLessEqual(a, b)等价,也可能不等价。
安装
使用pip从PyPI安装
$ pip install flake8-assertive
该扩展将由flake8自动激活。您可以通过检查flake8 --version字符串来验证它是否已加载。
$ flake8 --version
4.0.1 (assertive: 2.1.0, ...) CPython 3.9.10 on Darwin
错误代码
此扩展添加了三个新的错误代码(使用A50前缀)
A500:对于‘{op}’比较,首选{func}
A501:对于‘{op}’表达式,首选{func}
A502:首选{func}而不是比较到{obj}
A503:使用{func}而不是已弃用的{name}
A504:对于{func}诊断,首选‘msg=’参数
配置
配置值在您的配置文件的[flake8]部分中指定,或作为命令行参数(例如,--assertive-snakecase)。
assertive-snakecase:建议使用snake_case断言方法名(例如,assert_true())而不是标准名称(例如,assertTrue())
assertive-test-pattern:用于标识unittest测试文件(以及其他文件将被跳过)的fnmatch模式
注意事项
在某些特定情况下,建议可能与原始意图不匹配。
测试相等运算符
assertEqual()不会使用==运算符,如果比较已被委派给一个特定类型的相等函数。默认情况下,这是字符串、序列、列表、元组、集合和字典的情况。
如果您的意图是具体测试==运算符,请考虑以这种方式编写断言
assertIs(a == b, True)
这种方法的好处在于验证类型的 __eq__ 实现返回布尔值。不幸的是,它也有缺点,即在失败时报告 a == b 的结果,而不是 a 和 b 的值。
建议者: Serhiy Storchaka
版权所有(c)2018-至今 Jon Parise
特此授予任何获取此软件及其相关文档副本(“软件”)的人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定用途和侵权保证。在任何情况下,作者或版权所有者都不应对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是由于合同、侵权或其他方式引起的,与软件或软件的使用或其他交易有关。
变更
2.1.0 (2022-03-15)
建议使用显式的 msg 关键字参数与 assertTrue() 和 assertFalse() 结合使用,以避免意外使用两个参数。这由一个新的错误代码控制: A504
2.0.0 (2021-12-30)
停止支持 Python 2.7 和 3.6,并添加 3.10。
停止支持 flake8 2.x 版本。
1.3.0 (2020-10-12)
停止支持 Python 3.5 并添加版本 3.9。
1.2.1 (2019-12-08)
支持断言方法调用中的关键字参数。
1.2.0 (2019-12-05)
建议使用已弃用方法的推荐名称,例如 assertEqual() 而不是 assertEquals()。
1.1.0 (2019-06-26)
建议对 round() 表达式使用 assertAlmostEqual(a, b, x),例如在 assertEqual(a, round(b, x)) 和 assertAlmostEqual(a, round(b, x)) 中(以及类似的情况对于 assertNotEqual() 和 assertNotAlmostEqual())。
将 assertAmostEquals() 和 assertNotAlmostEquals() 识别为 assertAlmostEqual() 和 assertNotAlmostEqual() 的别名。
由于已正式退役,停止支持 Python 3.4。
1.0.1 (2018-07-03)
不要对包含多个比较操作的断言提出建议(例如 assertTrue(a == b == c))。
1.0.0 (2018-06-04)
建议使用 assertIsNone(a) 替代 assertTrue(a is None) 等。
将 assertEquals() 和 assertNotEquals() 识别为 assertEqual() 和 assertNotEqual() 的别名。
0.9.0 (2018-05-14)
初始测试版发布
项目详情
下载文件
下载适合您平台的应用程序文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分发版
flake8-assertive-2.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 72a333fefe1af1f8d46359f4d083f8a8d42d7edb9db84406ce8de17bcffbbd10 |
|
MD5 | e46b97ffeae9e4e310276ca1dd63a8f6 |
|
BLAKE2b-256 | 4670e19d44d922c963d9057bc410db90d1e1300867cfa612d73124a228c627cd |
flake8_assertive-2.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dc0c561010b2c00f7314f7fbf3b3de302efb24154316deb338d07e083fa30b26 |
|
MD5 | e142d1fecd8af331ad3aae6403e520f3 |
|
BLAKE2b-256 | c07d5bc19f02603904ad9bd496c1d7154f178a727dd78ea25da0b812613ab923 |