aboutsummaryrefslogtreecommitdiff
path: root/tests/errors
diff options
context:
space:
mode:
Diffstat (limited to 'tests/errors')
-rw-r--r--tests/errors/context.test.py93
-rw-r--r--tests/errors/errors.test.py35
2 files changed, 1 insertions, 127 deletions
diff --git a/tests/errors/context.test.py b/tests/errors/context.test.py
index fff9e09..6595e92 100644
--- a/tests/errors/context.test.py
+++ b/tests/errors/context.test.py
@@ -2,37 +2,7 @@
from unittest import mock
-from edify.errors.context import (
- CallerContext,
- _context_for_frame,
- capture_caller_context,
-)
-
-
-class _FakeCode:
- """A stand-in for ``types.CodeType`` used to force specific ``co_positions`` behaviour."""
-
- def __init__(self, filename: str, positions: list[tuple]) -> None:
- self.co_filename = filename
- self._positions = list(positions)
-
- def co_positions(self):
- return iter(self._positions)
-
-
-class _FakeFrame:
- """A stand-in for ``types.FrameType`` shaped for :func:`_context_for_frame`."""
-
- def __init__(
- self,
- filename: str,
- f_lineno: int,
- f_lasti: int,
- positions: list[tuple],
- ) -> None:
- self.f_code = _FakeCode(filename, positions)
- self.f_lineno = f_lineno
- self.f_lasti = f_lasti
+from edify.errors.context import CallerContext, capture_caller_context
def test_capture_caller_context_returns_none_when_every_frame_is_inside_edify():
@@ -40,67 +10,6 @@ def test_capture_caller_context_returns_none_when_every_frame_is_inside_edify():
assert capture_caller_context() is None
-def test_context_for_frame_uses_lineno_fallback_when_instruction_index_out_of_range():
- frame = _FakeFrame(
- filename="/tmp/fake.py",
- f_lineno=42,
- f_lasti=999,
- positions=[],
- )
- context = _context_for_frame(frame)
- assert context.lineno == 42
- assert context.colno == 1
- assert context.end_colno == 1
-
-
-def test_context_for_frame_defaults_start_line_when_position_start_line_is_none():
- frame = _FakeFrame(
- filename="/tmp/fake.py",
- f_lineno=99,
- f_lasti=0,
- positions=[(None, None, None, None)],
- )
- context = _context_for_frame(frame)
- assert context.lineno == 99
-
-
-def test_context_for_frame_defaults_end_line_when_position_end_line_is_none():
- frame = _FakeFrame(
- filename="/tmp/fake.py",
- f_lineno=7,
- f_lasti=0,
- positions=[(5, None, 2, 4)],
- )
- context = _context_for_frame(frame)
- assert context.lineno == 5
- assert context.colno == 3
- assert context.end_colno == 5
-
-
-def test_context_for_frame_defaults_start_col_when_position_start_col_is_none():
- frame = _FakeFrame(
- filename="/tmp/fake.py",
- f_lineno=1,
- f_lasti=0,
- positions=[(1, 1, None, 5)],
- )
- context = _context_for_frame(frame)
- assert context.colno == 1
- assert context.end_colno == 6
-
-
-def test_context_for_frame_defaults_end_col_when_position_end_col_is_none():
- frame = _FakeFrame(
- filename="/tmp/fake.py",
- f_lineno=1,
- f_lasti=0,
- positions=[(1, 1, 3, None)],
- )
- context = _context_for_frame(frame)
- assert context.colno == 4
- assert context.end_colno == 4
-
-
def test_caller_context_dataclass_is_frozen_and_holds_all_five_fields():
context = CallerContext(filename="a.py", lineno=1, colno=1, end_colno=5, source_line="x = 1")
assert context.filename == "a.py"
diff --git a/tests/errors/errors.test.py b/tests/errors/errors.test.py
index 74acaa4..632045d 100644
--- a/tests/errors/errors.test.py
+++ b/tests/errors/errors.test.py
@@ -16,12 +16,6 @@ from edify.errors.input import (
MustBeSingleCharacterError,
MustHaveASmallerValueError,
)
-from edify.errors.internal import (
- FailedToCompileRegexError,
- NonFusableElementError,
- UnexpectedFrameTypeError,
- UnknownElementTypeError,
-)
from edify.errors.naming import (
CannotCreateDuplicateNamedGroupError,
NamedGroupDoesNotExistError,
@@ -188,31 +182,6 @@ def test_cannot_call_subexpression():
assert "capture" in text
-def test_unknown_element_type():
- error = UnknownElementTypeError("WeirdElement")
- text = str(error)
- assert "unknown element type 'WeirdElement'" in text
-
-
-def test_non_fusable_element():
- error = NonFusableElementError("DigitElement")
- text = str(error)
- assert "cannot fuse element 'DigitElement' into a character class" in text
-
-
-def test_unexpected_frame_type():
- error = UnexpectedFrameTypeError("DigitElement")
- text = str(error)
- assert "stack frame anchored at unexpected element 'DigitElement'" in text
-
-
-def test_failed_to_compile_regex():
- error = FailedToCompileRegexError("missing )")
- text = str(error)
- assert "rejected by the re engine" in text
- assert "missing )" in text
-
-
def test_every_annotated_error_message_starts_with_error_prefix():
errors = [
StartInputAlreadyDefinedError(),
@@ -234,10 +203,6 @@ def test_every_annotated_error_message_starts_with_error_prefix():
NamedGroupDoesNotExistError("x"),
CannotEndWhileBuildingRootExpressionError(),
CannotCallSubexpressionError("capture"),
- UnknownElementTypeError("X"),
- NonFusableElementError("X"),
- UnexpectedFrameTypeError("X"),
- FailedToCompileRegexError("boom"),
]
for error in errors:
text = str(error)