跳转到主要内容

显示您的正则表达式匹配断言失败的位置!

项目描述

Build Status Azure DevOps coverage

re-assert

显示您的正则表达式匹配断言失败的位置!

安装

pip安装re-assert

使用

re-assert提供了一个辅助类,使正则表达式的断言更加简单。

re_assert.Matches(pattern: str, *args, **kwargs)

构建一个Matches对象。

注意:在底层,re-assert使用regex库进行匹配,任何*args / **kwargs都支持regex.compile,通常,regex库与re库100%兼容(甚至可以接受其标志等)

re_assert.Matches.from_pattern(pattern: Pattern[str]) -> Matches

从一个已编译的正则表达式构建一个Matches对象。

这在测试现有的已编译正则表达式时很有用。

>>> import re
>>> reg = re.compile('foo')
>>> Matches.from_pattern(reg) == 'fork'
False
>>> Matches.from_pattern(reg) == 'food'
True

Matches.__eq__(other) (==)

相等操作符被覆盖,以便与pytest等断言框架一起使用

>>> pat = Matches('foo')
>>> pat == 'bar'
False
>>> pat == 'food'
True

Matches.__repr__() (repr(...))

相等失败的一个副作用是改变repr(...)Matches对象。这允许pytest断言消息更有用

>       assert Matches('foo') == 'fork'
E       AssertionError: assert Matches('foo'...ork\n    #    ^ == 'fork'
E         -Matches('foo')\n
E         -    # regex failed to match at:\n
E         -    #\n
E         -    #> fork\n
E         -    #    ^
E         +'fork'

Matches.assert_matches(s: str)

如果您使用的是其他测试框架,此方法对于生成可读的回溯很有用

>>> Matches('foo').assert_matches('food')
>>> Matches('foo').assert_matches('fork')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/asottile/workspace/re-assert/re_assert.py", line 63, in assert_matches
    assert self == s, self._fail
AssertionError:  regex failed to match at:

> fork
    ^

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分发

re_assert-1.1.0.tar.gz (3.9 kB 查看哈希值)

上传时间

构建分发

re_assert-1.1.0-py2.py3-none-any.whl (4.0 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持