From abc0d47bc7b45f6022fcfd26295cf00b738735a0 Mon Sep 17 00:00:00 2001 From: natsuoto <279971144+natsuoto@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:00:59 +0530 Subject: feat: __repr__ shows the pattern-so-far on the builder --- tests/builder/repr.test.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/builder/repr.test.py (limited to 'tests') diff --git a/tests/builder/repr.test.py b/tests/builder/repr.test.py new file mode 100644 index 0000000..278f40b --- /dev/null +++ b/tests/builder/repr.test.py @@ -0,0 +1,31 @@ +"""Tests for :meth:`BuilderCore.__repr__` on :class:`RegexBuilder` and :class:`Pattern`.""" + +from edify import Pattern, RegexBuilder + + +def test_repr_of_a_fresh_regex_builder_shows_the_empty_non_capturing_group(): + assert repr(RegexBuilder()) == "" + + +def test_repr_of_a_fresh_pattern_shows_the_empty_non_capturing_group(): + assert repr(Pattern()) == "" + + +def test_repr_of_a_regex_builder_shows_the_pattern_so_far(): + builder = RegexBuilder().start_of_input().exactly(4).digit().end_of_input() + assert repr(builder) == "" + + +def test_repr_of_a_pattern_shows_the_pattern_so_far(): + pattern = Pattern().one_or_more().word() + assert repr(pattern) == "" + + +def test_repr_of_a_builder_with_open_frames_shows_the_unclosed_marker(): + builder = RegexBuilder().any_of().string("cat") + assert repr(builder) == "'>" + + +def test_repr_uses_the_concrete_class_name_not_the_base(): + assert repr(RegexBuilder()).startswith("