diff options
| author | natsuoto <[email protected]> | 2026-07-15 15:15:21 +0530 |
|---|---|---|
| committer | natsuoto <[email protected]> | 2026-07-15 15:15:21 +0530 |
| commit | 91942559f53003d2ef7a524456aef84f93b7f319 (patch) | |
| tree | d4064676c1188ff23541a1c50072af448ae74068 /tests/errors/errors.test.py | |
| parent | c343f05467045bd369aa8ecd6273924fe7c89f95 (diff) | |
| download | edify-91942559f53003d2ef7a524456aef84f93b7f319.tar.xz edify-91942559f53003d2ef7a524456aef84f93b7f319.zip | |
feat(errors): structured open-frame stack with per-frame call sites; DanglingQuantifierError names the pending quantifier
Diffstat (limited to 'tests/errors/errors.test.py')
| -rw-r--r-- | tests/errors/errors.test.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/errors/errors.test.py b/tests/errors/errors.test.py index 632045d..82eb8fe 100644 --- a/tests/errors/errors.test.py +++ b/tests/errors/errors.test.py @@ -24,6 +24,7 @@ from edify.errors.naming import ( from edify.errors.structure import ( CannotCallSubexpressionError, CannotEndWhileBuildingRootExpressionError, + OpenFrameInfo, ) @@ -176,10 +177,26 @@ def test_cannot_end_while_building_root_expression(): def test_cannot_call_subexpression(): - error = CannotCallSubexpressionError("capture") + frames = (OpenFrameInfo(kind="capture", opened_at=None),) + error = CannotCallSubexpressionError(frames) text = str(error) assert "cannot merge a subexpression that has an unclosed frame" in text - assert "capture" in text + assert "1 open frame" in text + assert ".capture()" in text + + +def test_cannot_call_subexpression_lists_every_open_frame_in_the_stack(): + frames = ( + OpenFrameInfo(kind="capture", opened_at=None), + OpenFrameInfo(kind="assert_ahead", opened_at=None), + OpenFrameInfo(kind="group", opened_at=None), + ) + error = CannotCallSubexpressionError(frames) + text = str(error) + assert "3 open frame" in text + assert "1. .capture()" in text + assert "2. .assert_ahead()" in text + assert "3. .group()" in text def test_every_annotated_error_message_starts_with_error_prefix(): @@ -202,7 +219,7 @@ def test_every_annotated_error_message_starts_with_error_prefix(): CannotCreateDuplicateNamedGroupError("x"), NamedGroupDoesNotExistError("x"), CannotEndWhileBuildingRootExpressionError(), - CannotCallSubexpressionError("capture"), + CannotCallSubexpressionError((OpenFrameInfo(kind="capture", opened_at=None),)), ] for error in errors: text = str(error) |
