Spaces:
Sleeping
Sleeping
File size: 1,779 Bytes
116524e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | """Unit tests for pipeline error types."""
from __future__ import annotations
import pytest
from pipeline import BranchError, PipelineConfigError, PipelineOrderError
@pytest.mark.unit
class TestErrorHierarchy:
def test_pipeline_order_error_is_exception(self):
err = PipelineOrderError("bad order")
assert isinstance(err, Exception)
def test_pipeline_config_error_is_exception(self):
err = PipelineConfigError("bad config")
assert isinstance(err, Exception)
def test_branch_error_is_exception(self):
err = BranchError([RuntimeError("x")])
assert isinstance(err, Exception)
@pytest.mark.unit
class TestBranchError:
def test_stores_failures_list(self):
failures = [RuntimeError("a"), ValueError("b")]
err = BranchError(failures)
assert err.failures is failures
def test_message_includes_failure_count(self):
err = BranchError([RuntimeError("x"), OSError("y")])
assert "2" in str(err)
def test_message_includes_type_names(self):
err = BranchError([RuntimeError("x"), ValueError("y")])
msg = str(err)
assert "RuntimeError" in msg
assert "ValueError" in msg
def test_single_failure(self):
inner = RuntimeError("boom")
err = BranchError([inner])
assert err.failures == [inner]
assert "1" in str(err)
def test_empty_failures_list(self):
err = BranchError([])
assert err.failures == []
assert "0" in str(err)
def test_can_be_raised_and_caught(self):
with pytest.raises(BranchError) as exc_info:
raise BranchError([RuntimeError("boom")])
assert len(exc_info.value.failures) == 1
|