"""Unit tests for custom exceptions.""" import pytest pytestmark = pytest.mark.unit from src.utils.exceptions import ( ConfigurationError, DeepBonerError, JudgeError, RateLimitError, SearchError, ) class TestExceptions: """Tests for exception hierarchy.""" def test_search_error_is_deepboner_error(self): assert issubclass(SearchError, DeepBonerError) def test_rate_limit_error_is_search_error(self): assert issubclass(RateLimitError, SearchError) def test_judge_error_is_deepboner_error(self): assert issubclass(JudgeError, DeepBonerError) def test_configuration_error_is_deepboner_error(self): assert issubclass(ConfigurationError, DeepBonerError) def test_subclass_caught_as_base(self): """Verify subclasses can be caught via DeepBonerError.""" try: raise RateLimitError("rate limited") except DeepBonerError as exc: assert isinstance(exc, RateLimitError) assert isinstance(exc, DeepBonerError)