diff options
| author | natsuoto <[email protected]> | 2026-07-15 13:51:38 +0530 |
|---|---|---|
| committer | natsuoto <[email protected]> | 2026-07-15 13:51:38 +0530 |
| commit | 34694646345ce2a43c12df6fcb214371f3ee06c0 (patch) | |
| tree | 65614e6da771dce243d16bac7440fa7591d9a1e0 /tests/builder/flags.test.py | |
| parent | 414c548570df1c1e19b0982473e59b589802847c (diff) | |
| download | edify-34694646345ce2a43c12df6fcb214371f3ee06c0.tar.xz edify-34694646345ce2a43c12df6fcb214371f3ee06c0.zip | |
feat(engine): route to_regex(engine=re|regex) through a backend layer; regex is a deferred-import extra
Diffstat (limited to 'tests/builder/flags.test.py')
| -rw-r--r-- | tests/builder/flags.test.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/builder/flags.test.py b/tests/builder/flags.test.py index d35d2ff..02e875e 100644 --- a/tests/builder/flags.test.py +++ b/tests/builder/flags.test.py @@ -70,3 +70,48 @@ def test_multiple_kwargs_combine(): assert compiled.compiled.flags & re.I == re.I assert compiled.compiled.flags & re.M == re.M assert compiled.compiled.flags & re.S == re.S + + +def _regex_module(): + import regex + + return regex + + +def test_regex_engine_ignore_case_kwarg_enables_the_flag(): + regex = _regex_module() + compiled = RegexBuilder().string("hi").to_regex(engine="regex", ignore_case=True) + assert compiled.compiled.flags & regex.I == regex.I + + +def test_regex_engine_multiline_kwarg_enables_the_flag(): + regex = _regex_module() + compiled = RegexBuilder().string("hi").to_regex(engine="regex", multiline=True) + assert compiled.compiled.flags & regex.M == regex.M + + +def test_regex_engine_dotall_kwarg_enables_the_flag(): + regex = _regex_module() + compiled = RegexBuilder().string("hi").to_regex(engine="regex", dotall=True) + assert compiled.compiled.flags & regex.S == regex.S + + +def test_regex_engine_ascii_only_kwarg_enables_the_flag(): + regex = _regex_module() + compiled = RegexBuilder().string("hi").to_regex(engine="regex", ascii_only=True) + assert compiled.compiled.flags & regex.A == regex.A + + +def test_regex_engine_verbose_kwarg_enables_the_flag(): + regex = _regex_module() + compiled = RegexBuilder().string("hi").to_regex(engine="regex", verbose=True) + assert compiled.compiled.flags & regex.X == regex.X + + + _ON_PYPY, + reason="PyPy's regex.DEBUG opcode disassembler shares the same upstream disassembler bug", +) +def test_regex_engine_debug_kwarg_compiles_without_error(): + compiled = RegexBuilder().string("hi").to_regex(engine="regex", debug=True) + assert compiled.source == "hi" |
