aboutsummaryrefslogtreecommitdiff
path: root/tests/builder/flags.test.py
diff options
context:
space:
mode:
authornatsuoto <[email protected]>2026-07-15 13:51:38 +0530
committernatsuoto <[email protected]>2026-07-15 13:51:38 +0530
commit34694646345ce2a43c12df6fcb214371f3ee06c0 (patch)
tree65614e6da771dce243d16bac7440fa7591d9a1e0 /tests/builder/flags.test.py
parent414c548570df1c1e19b0982473e59b589802847c (diff)
downloadedify-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.py45
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"