Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
show where your regex match assertion failed!
pip install re-assert
re-assert
provides a helper class to make assertions of regexes simpler.
re_assert.Matches(pattern: str, *args, **kwargs)
construct a Matches
object.
note: under the hood, re-assert
uses the regex
library for matching,
any *args
/ **kwargs
that regex.compile
supports will work. in general,
the regex
library is 100% compatible with the re
library (and will even
accept its flags, etc.)
re_assert.Matches.from_pattern(pattern: Pattern[str]) -> Matches
construct a Matches
object from an already-compiled regex.
this is useful (for instance) if you're testing an existing compiled regex.
>>> import re
>>> reg = re.compile('foo')
>>> Matches.from_pattern(reg) == 'fork'
False
>>> Matches.from_pattern(reg) == 'food'
True
Matches.__eq__(other)
(==
)the equality operator is overridden for use with assertion frameworks such as pytest
>>> pat = Matches('foo')
>>> pat == 'bar'
False
>>> pat == 'food'
True
Matches.__repr__()
(repr(...)
)a side-effect of an equality failure changes the repr(...)
of a Matches
object. this allows for useful pytest assertion messages:
> 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)
if you're using some other test framework, this method is useful for producing a readable traceback
>>> 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
^
FAQs
show where your regex match assertion failed!
We found that re-assert demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.